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@gmail.com
From: Sasha Finkelstein fnkl.kernel@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@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;
Did you build with x86_64 host and aarch64 guest?
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 ```
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?
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.
This merge request was closed by Sasha Finkelstein.
Superseded by 9cf835d3fecd8cf4faf54d18a45cb6d24767efdc.