aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/config.host31
1 files changed, 30 insertions, 1 deletions
diff --git a/libgcc/config.host b/libgcc/config.host
index 9dcc253..0fbf9a3 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -410,7 +410,7 @@ aarch64*-*-vxworks7*)
extra_parts="$extra_parts crtfastmath.o"
md_unwind_header=aarch64/aarch64-unwind.h
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
- tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
+ tmake_file="${tmake_file} ${cpu_type}/t-lse"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
tmake_file="${tmake_file} t-dfprules"
;;
@@ -1549,6 +1549,35 @@ aarch64*-*-*)
;;
esac
+# Setup to build a shared libgcc for VxWorks when that was requested,
+# for library variants that support it (rtp only, code model not large).
+#
+
+case ${host} in
+*vxworks*)
+ case ${with_multisubdir}-${enable_shared} in
+ *large*)
+ ;;
+ *mrtp*-yes)
+ tmake_file="${tmake_file} t-libgcc-pic"
+
+ # Arrange to set a soname on libgcc_s so DT_NEEDED entries
+ # for it refer to that alone. This ensures absence of path
+ # components which would be incorrect as the runtime loader
+ # on target has no visibility over the host filesystem.
+ tmake_file="${tmake_file} t-slibgcc-gld-nover"
+ tmake_file="${tmake_file} t-slibgcc"
+
+ # t-slibgcc-libgcc is needed on at least aarch64 (for
+ # lse) and at most harmless on other targets.
+ tmake_file="${tmake_file} t-slibgcc-libgcc"
+
+ tmake_file="${tmake_file} t-crtstuff-pic t-vxcrtstuffS"
+ ;;
+ esac
+ ;;
+esac
+
# The vxworks threads implementation relies on a few extra sources,
# which we arrange to add after everything else: