- Fix libltdl early failures for multi-arch.
+** Changes in supported systems or compilers:
+
+ - Support additional Intel OneAPI compilers, 'icx', 'icpx', and 'ifx'.
+
* Noteworthy changes in release 2.5.4 (2024-11-20) [stable]
#define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp))
#define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp))
-#define FREE(mem) LT_STMT_START { \
- free (mem); mem = NULL; } LT_STMT_END
-#define MEMREASSIGN(p, q) LT_STMT_START { \
+#define FREE(mem) LT_STMT_START \
+ free (mem); mem = NULL; LT_STMT_END
+#define MEMREASSIGN(p, q) LT_STMT_START \
if ((p) != (q)) { free (p); (p) = (q); (q) = 0; } \
- } LT_STMT_END
+ LT_STMT_END
/* If set, this function is called when memory allocation has failed. */
LT_SCOPE void (*lt__alloc_die) (void);
/* LT_STMT_START/END are used to create macros that expand to a
a single compound statement in a portable way. */
#if defined __GNUC__ && !defined __STRICT_ANSI__ && !defined __cplusplus
-# define LT_STMT_START (void)(
-# define LT_STMT_END )
+# define LT_STMT_START (void)({
+# define LT_STMT_END })
#else
# if (defined sun || defined __sun__)
-# define LT_STMT_START if (1)
-# define LT_STMT_END else (void)0
+# define LT_STMT_START if (1){
+# define LT_STMT_END }else (void)0
# else
-# define LT_STMT_START do
-# define LT_STMT_END while (0)
+# define LT_STMT_START do{
+# define LT_STMT_END }while (0)
# endif
#endif
#include <windows.h>
-#define LOCALFREE(mem) LT_STMT_START { \
- if (mem) { LocalFree ((void *)mem); mem = NULL; } } LT_STMT_END
+#define LOCALFREE(mem) LT_STMT_START \
+ if (mem) { LocalFree ((void *)mem); mem = NULL; } LT_STMT_END
#define LOADLIB__SETERROR(errmsg) LT__SETERRORSTR (loadlibraryerror (errmsg))
#define LOADLIB_SETERROR(errcode) LOADLIB__SETERROR (LT__STRERROR (errcode))
}
#endif
#if defined LT_DLSEARCH_PATH
- if (!file && *sys_dlsearch_path)
+ if (!file)
{
- file = find_file (sys_dlsearch_path, base_name, &dir);
+ if (*sys_dlsearch_path)
+ {
+ file = find_file (sys_dlsearch_path, base_name, &dir);
+ }
}
#endif
}
is_done = foreach_dirinpath (user_search_path, 0,
foreachfile_callback, fpptr, data);
if (!is_done)
- {
- is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0,
+ {
+ is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0,
foreachfile_callback, fpptr, data);
- }
+ }
#if defined LT_MODULE_PATH_VAR
if (!is_done)
- {
- is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0,
- foreachfile_callback, fpptr, data);
- }
+ {
+ is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0,
+ foreachfile_callback, fpptr, data);
+ }
#endif
#if defined LT_DLSEARCH_PATH
- if (!is_done && *sys_dlsearch_path)
- {
- is_done = foreach_dirinpath (sys_dlsearch_path, 0,
- foreachfile_callback, fpptr, data);
- }
+ if (!is_done)
+ {
+ if (*sys_dlsearch_path)
+ {
+ is_done = foreach_dirinpath (sys_dlsearch_path, 0,
+ foreachfile_callback, fpptr, data);
+ }
+ }
#endif
}
dynamic_linker='Win32 ld.exe'
;;
- *,cl* | *,icl*)
- # Native MSVC or ICC
+ *,cl* | *,icl* | *,icx*)
+ # Native MSVC and Intel compilers
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- icpc* )
+ icpc* | icpx*)
# Intel C++, used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
+ icc* | ifort* | icx* | ifx*)
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
cygwin* | mingw* | windows* | cegcc*)
case $cc_basename in
- cl* | icl*)
+ cl* | icl* | icx* | icpx*)
+ # Native MSVC and Intel compilers
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
;;
*)
tmp_addflag=' -i_dynamic' ;;
efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
+ ifc* | ifort* | ifx*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
lf95*) # Lahey Fortran 8.1
_LT_TAGVAR(whole_archive_flag_spec, $1)=
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
- cl* | icl*)
- # Native MSVC or ICC
+ cl* | icl* | icx* | icpx*)
+ # Native MSVC and Intel compilers
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_TAGVAR(always_export_symbols, $1)=yes
cygwin* | mingw* | windows* | pw32* | cegcc*)
case $GXX,$cc_basename in
- ,cl* | no,cl* | ,icl* | no,icl*)
- # Native MSVC or ICC
+ ,cl* | no,cl* | ,icl* | no,icl* | ,icx* | no,icx* | ,icpx* | no,icpx*)
+ # Native MSVC and Intel compilers
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
# "CC -Bstatic", where "CC" is the KAI C++ compiler.
_LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
- icpc* | ecpc* )
+ icpc* | ecpc* | icpx*)
# Intel C++
with_gnu_ld=yes
# version 8.0 and above of icpc choke on multiply defined symbols