aboutsummaryrefslogtreecommitdiff
path: root/libtool.m4
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@adacore.com>2023-08-07 13:07:33 +0200
committerAlan Modra <amodra@gmail.com>2023-08-12 10:25:05 +0930
commitf34b00a4362dd9bd6a05ca796d40e42656291d23 (patch)
treea7a0c4dd97ae65b0a81299bdaf61ef00da48a3d5 /libtool.m4
parent5006459c397a5d7b9acd5e857ff1d74dfb7b8c0e (diff)
downloadfsf-binutils-gdb-f34b00a4362dd9bd6a05ca796d40e42656291d23.zip
fsf-binutils-gdb-f34b00a4362dd9bd6a05ca796d40e42656291d23.tar.gz
fsf-binutils-gdb-f34b00a4362dd9bd6a05ca796d40e42656291d23.tar.bz2
Generic configury support for shared libs on VxWorks
This change adds the configury bits to activate the build of shared libs on VxWorks ports configured with --enable-shared, for libraries variants where this is generally supported (rtp, code model !large - currently not compatible with -fPIC). Set lt_cv_deplibs_check_method in libtool.m4, so the build of libraries know how to establish dependencies. This is useful in configurations such as aarch64 where proper support of LSE relies on accurate dependency information between libstdc++ and libgcc_s to begin with. * libtool.m4 (*vxworks*): When enable_shared, set dynamic_linker and friends for rtp !large. Assume the linker has the required abilities and set lt_cv_deplibs_check_method.
Diffstat (limited to 'libtool.m4')
-rw-r--r--libtool.m429
1 files changed, 27 insertions, 2 deletions
diff --git a/libtool.m4 b/libtool.m4
index cb502da..8c8399f 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -2700,6 +2700,25 @@ uts4*)
shlibpath_var=LD_LIBRARY_PATH
;;
+# Shared libraries for VwWorks, >= 7 only at this stage
+# and (fpic) still incompatible with "large" code models
+# in a few configurations. Only for RTP mode in any case,
+# and upon explicit request at configure time.
+vxworks7*)
+ dynamic_linker=no
+ case ${with_multisubdir}-${enable_shared} in
+ *large*)
+ ;;
+ *mrtp*-yes)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker="$host_os module_loader"
+ ;;
+ esac
+ ;;
*)
dynamic_linker=no
;;
@@ -3187,6 +3206,11 @@ sysv4 | sysv4.3*)
tpf*)
lt_cv_deplibs_check_method=pass_all
;;
+vxworks*)
+ # Assume VxWorks cross toolchains are built on Linux, possibly
+ # as canadian for Windows hosts.
+ lt_cv_deplibs_check_method=pass_all
+ ;;
esac
])
file_magic_cmd=$lt_cv_file_magic_cmd
@@ -6429,8 +6453,9 @@ if test "$_lt_caught_CXX_error" != yes; then
;;
vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
+ # For VxWorks ports, we assume the use of a GNU linker with
+ # standard elf conventions.
+ _LT_TAGVAR(ld_shlibs, $1)=yes
;;
*)