diff options
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/config.host | 31 |
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: |