makefiles: Don't use bundled libraries to build native Unix libraries.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2021-11-23 14:40:04 +01:00
parent d9984aa505
commit 1ef7dd2d7c
1 changed files with 13 additions and 16 deletions

View File

@ -2015,9 +2015,8 @@ static struct strarray add_unix_libraries( const struct makefile *make, struct s
struct strarray all_libs = empty_strarray;
unsigned int i, j;
if (make->native_unix_lib && strcmp( make->unixlib, "ntdll.so" )) strarray_add( &all_libs, "-lntdll" );
if (strcmp( make->unixlib, "ntdll.so" )) strarray_add( &all_libs, "-lntdll" );
strarray_addall( &all_libs, get_expanded_make_var_array( make, "EXTRALIBS" ));
strarray_addall( &all_libs, libs );
for (i = 0; i < all_libs.count; i++)
{
@ -2025,21 +2024,12 @@ static struct strarray add_unix_libraries( const struct makefile *make, struct s
if (!strncmp( all_libs.str[i], "-l", 2 ))
{
const char *name = all_libs.str[i] + 2;
for (j = 0; j < subdirs.count; j++)
{
if (make == submakes[j]) continue;
if ((lib = get_static_lib( submakes[j], name ))) break;
if ((lib = get_native_unix_lib( submakes[j], all_libs.str[i] + 2 ))) break;
}
if (!lib && make->native_unix_lib)
for (j = 0; j < subdirs.count; j++)
{
if (make == submakes[j]) continue;
if ((lib = get_native_unix_lib( submakes[j], name ))) break;
}
}
if (lib)
{
strarray_add( deps, lib );
@ -2047,6 +2037,8 @@ static struct strarray add_unix_libraries( const struct makefile *make, struct s
}
else strarray_add( &ret, all_libs.str[i] );
}
strarray_addall( &ret, libs );
return ret;
}
@ -3145,6 +3137,12 @@ static void output_module( struct makefile *make )
strarray_addall( &all_libs, add_import_libs( make, &dep_libs, make->delayimports, 1, make->is_cross ));
strarray_addall( &all_libs, add_import_libs( make, &dep_libs, imports, 0, make->is_cross ));
if (!make->use_msvcrt)
{
strarray_addall( &all_libs, get_expanded_make_var_array( make, "EXTRALIBS" ));
strarray_addall( &all_libs, libs );
}
if (make->is_cross)
{
if (delay_load_flag)
@ -3161,7 +3159,6 @@ static void output_module( struct makefile *make )
}
else if (*dll_ext)
{
if (!make->use_msvcrt) strarray_addall( &all_libs, add_unix_libraries( make, &dep_libs ));
for (i = 0; i < make->delayimports.count; i++)
strarray_add( &all_libs, strmake( "-Wl,-delayload,%s%s", make->delayimports.str[i],
strchr( make->delayimports.str[i], '.' ) ? "" : ".dll" ));
@ -3172,7 +3169,6 @@ static void output_module( struct makefile *make )
}
else
{
strarray_addall( &all_libs, add_unix_libraries( make, &dep_libs ));
strarray_add( &make->all_targets, make->module );
add_install_rule( make, make->module, make->module,
strmake( "p$(%s)/%s", spec_file ? "dlldir" : "bindir", make->module ));
@ -3316,9 +3312,10 @@ static void output_unix_lib( struct makefile *make )
if (spec_file) strarray_add( &unix_deps, spec_file );
strarray_addall( &unix_libs, add_import_libs( make, &unix_deps, unix_imports, 0, 0 ));
strarray_addall( &unix_libs, get_expanded_make_var_array( make, "EXTRALIBS" ));
strarray_addall( &unix_libs, libs );
}
strarray_addall( &unix_libs, add_unix_libraries( make, &unix_deps ));
else unix_libs = add_unix_libraries( make, &unix_deps );
strarray_add( &make->all_targets, make->unixlib );
add_install_rule( make, make->module, make->unixlib, strmake( "p%s/%s", so_dir, make->unixlib ));