[PATCH 0/1] MR8068: makedep: Build implib code with guest compiler.
Some implibs contain code that indirectly includes winnt.h, which in turn contains NtGetCurrentTeb. On arm64 that is implemented by reading a global register variable. Gcc is perfectly fine with that, but clang complains that x18 is not a reserved register on linux. Signed-off-by: Sasha Finkelstein <fnkl.kernel(a)gmail.com> -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068
From: Sasha Finkelstein <fnkl.kernel(a)gmail.com> Some implibs contain code that indirectly includes winnt.h, which in turn contains NtGetCurrentTeb. On arm64 that is implemented by reading a global register variable. Gcc is perfectly fine with that, but clang complains that x18 is not a reserved register on linux. Signed-off-by: Sasha Finkelstein <fnkl.kernel(a)gmail.com> --- tools/makedep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/makedep.c b/tools/makedep.c index ad06868fdab..0aef369c3ff 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -3243,7 +3243,7 @@ static void output_source_one_arch( struct makefile *make, struct incl_file *sou else if (archs.count > 1 && is_using_msvcrt( make )) { if (!so_dll_supported) return; - if (!(source->file->flags & FLAG_C_IMPLIB) && (!make->staticlib || make->extlib)) return; + if ((!make->staticlib || make->extlib)) return; } if (strendswith( source->name, ".S" ) && is_subdir_other_arch( source->name, arch )) return; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8068
Did you build with x86\_64 host and aarch64 guest? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068#note_103761
This is incorrect since it disables .dll.so support not only for arm64 but also i386/x86\_64. This is a bug in configure.ac, not in makedep. As mentioned on IRC, this is a regression from 013ec6e652ca1bc94b4bdefd8c577d15857bef68. ``` <@julliard> chaos_princess: host staticlib shouldn't be built, that's a makefile bug <@julliard> that's a regression from 013ec6e652ca1bc94b4bdefd8c577d15857bef68, i'll fix it ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068#note_103762
On Sun May 18 17:47:41 2025 +0000, Jinoh Kang wrote:
This is incorrect since it disables .dll.so support not only for arm64 but also i386/x86\_64. This is a bug in configure.ac, not in makedep. As mentioned on IRC, this is a regression from 013ec6e652ca1bc94b4bdefd8c577d15857bef68. ``` <@julliard> chaos_princess: host staticlib shouldn't be built, that's a makefile bug <@julliard> that's a regression from 013ec6e652ca1bc94b4bdefd8c577d15857bef68, i'll fix it ``` So the configure.ac is responsible both for staticlibs and implibs breaking?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068#note_103764
On Sun May 18 17:47:41 2025 +0000, Sasha Finkelstein wrote:
So the configure.ac is responsible both for staticlibs and implibs breaking? Yes.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068#note_103765
This merge request was closed by Sasha Finkelstein. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068
Superseded by 9cf835d3fecd8cf4faf54d18a45cb6d24767efdc. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8068#note_103893
participants (3)
-
Jinoh Kang (@iamahuman) -
Sasha Finkelstein -
Sasha Finkelstein (@chaos_princess)