t-slibgcc-darwin: Move to ...
gcc:
* config/t-slibgcc-darwin: Move to ...
* config/t-slibgcc-dummy: .. this.
Clarify comments.
* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
(i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
(i[34567]86-*-rtems*): Remove extra_parts.
Use i386/t-rtems.
Remove i386/t-crtstuff from tmake_file.
(i[34567]86-*-solaris2*): Remove t-svr4,
t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
t-slibgcc-dummy.
(sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
(sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
sparc/t-crtfm from tmake_file.
(sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
Remove extra_parts.
* config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
* config/i386/t-nwld (SHLIB_LINK): Remove.
* config/i386/t-rtems-i386: Rename to ...
* config/i386/t-rtems: ... this.
($(T)crti.o, $(T)crtn.o): Remove.
(FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
(dp-bit.c, fp-bit.c, xp-bit.c): Remove.
(EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
* config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
EXTRA_MULTILIB_PARTS): Remove.
* config/sparc/t-sol2-64: Likewise.
* config/sparc/t-sol2: Remove.
* config/sparc/t-crtin: Remove.
* config/sparc/gmon-sol2.c: Move to ../libgcc/config.
* config/i386/gmon-sol2.c: Remove.
* config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
* config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
* config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
* config/i386/sol2-gc1.asm: Remove.
* config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
* config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
* config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
* config/t-slibgcc-sld: Remove.
libgcc:
* Makefile.in (cpu_type): Define.
* config.host (i[34567]86-*-rtems*): Handle it.
(i[34567]86-*-solaris2*): Move body ...
(*-*-solaris2*): ... here.
New case, generalize.
(sparc-*-elf*): Handle it.
(sparc-*-linux*, sparc64-*-linux*): Replace sparc/t-crtfm by t-crtfm.
(sparc-*-rtems*, sparc64-*-rtems*); Handle it.
(sparc64-*-solaris2*, sparcv9-*-solaris2*, sparc-*-solaris2*):
Fold into ...
(sparc*-*-solaris2*): ... this.
New case.
(sparc64-*-elf*): Handle it.
* config/gmon-sol2.c: Move from ../gcc/config/sparc.
Merge ../gcc/config/i386/gmon-sol2.c.
* config/i386/sol2-c1.S: Move from ../gcc/config/i386/sol2-c1.asm.
Use C comments.
Merge ../gcc/config/i386/sol2-gc1.asm.
* config/i386/sol2-ci.S: Move from ../gcc/config/i386/sol2-ci.asm.
Use C comments.
* config/i386/sol2-cn.S: Move from ../gcc/config/i386/sol2-cn.asm.
Use C comments.
* config/i386/t-crtfm (crtfastmath.o): Use $<.
* config/i386/t-crtstuff: New file.
* config/i386/t-softfp: New file.
* config/i386/t-sol2 ($(T)gmon.o, $(T)gcrt1.o, $(T)crt1.o),
$(T)crti.o, $(T)crtn.o): Remove.
(gcrt1.o): New rule.
(TARGET_LIBGCC2_CFLAGS): Remove.
* config/sparc/sol2-c1.S: Move from ../gcc/config/sparc/sol2-c1.asm.
* config/sparc/sol2-ci.S: Move from ../gcc/config/sparc/sol2-ci.asm.
* config/sparc/sol2-cn.S: Move from ../gcc/config/sparc/sol2-cn.asm.
* config/sparc/t-sol2: New file.
* config/sparc/t-crtfm: Move to ...
* config/t-crtfm: ... this.
Use $(cpu_type), $<.
* config/t-crtin: New file.
* config/sparc/t-softfp: New file.
* config/sparc/t-softmul: New file.
* config/t-rtems: New file.
* config/t-slibgcc: New file.
* config/t-slibgcc-elf-ver: New file.
* config/t-slibgcc-gld: New file.
* config/t-slibgcc-sld: New file.
* config/t-sol2: New file.
* configure.ac: Include ../config/lib-ld.m4.
Call AC_LIB_PROG_LD_GNU.
Substitute cpu_type.
* configure: Regenerate.
From-SVN: r174529
2011-06-01 16:39:17 +02:00
|
|
|
# Build a shared libgcc library for ELF with symbol versioning
|
|
|
|
# with the Solaris linker.
|
|
|
|
|
|
|
|
SHLIB_LDFLAGS = -Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \
|
|
|
|
-Wl,-M,$(SHLIB_MAP)
|
2014-02-04 10:31:38 +01:00
|
|
|
|
2014-05-08 14:11:14 +02:00
|
|
|
ifeq ($(enable_shared),yes)
|
|
|
|
|
2014-02-04 10:31:38 +01:00
|
|
|
# Linker mapfile to enforce direct binding to libgcc_s unwinder
|
|
|
|
# (PR target/59788).
|
2018-09-18 09:04:15 +02:00
|
|
|
# Emit v2 mapfile syntax if possible, otherwise ld -z guidance complains
|
|
|
|
# every time the mapfile is used.
|
2014-02-04 10:31:38 +01:00
|
|
|
libgcc-unwind.map: libgcc-std.ver
|
2018-09-18 09:04:15 +02:00
|
|
|
ifeq ($(solaris_ld_v2_maps),yes)
|
|
|
|
@(echo '$$mapfile_version 2'; \
|
|
|
|
echo "SYMBOL_SCOPE {"; \
|
|
|
|
for f in `grep _Unwind_ $< | sort`; do \
|
|
|
|
echo " $$f { FLAGS = EXTERN DIRECT };"; \
|
|
|
|
done; \
|
|
|
|
echo "};" ) > $@
|
|
|
|
else
|
2014-02-04 10:31:38 +01:00
|
|
|
@(echo "{"; \
|
|
|
|
for f in `grep _Unwind_ $< | sort`; do \
|
|
|
|
echo " $$f = EXTERN DIRECT;"; \
|
|
|
|
done; \
|
|
|
|
echo "};" ) > $@
|
2018-09-18 09:04:15 +02:00
|
|
|
endif
|
2014-02-04 10:31:38 +01:00
|
|
|
|
|
|
|
# Copy libgcc-unwind.map to the place where gcc will look for it at build-time.
|
|
|
|
install-libgcc-unwind-map-forbuild: libgcc-unwind.map
|
|
|
|
dest=$(gcc_objdir)/tmp$$$$-$<; \
|
|
|
|
cp $< $$dest; \
|
|
|
|
chmod a+r $$dest; \
|
|
|
|
sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/$<
|
|
|
|
|
|
|
|
all: install-libgcc-unwind-map-forbuild
|
|
|
|
|
|
|
|
install-libgcc-unwind-map: libgcc-unwind.map
|
|
|
|
$(INSTALL_DATA) $< $(DESTDIR)$(slibdir)
|
|
|
|
|
|
|
|
install: install-libgcc-unwind-map
|
2014-05-08 14:11:14 +02:00
|
|
|
|
|
|
|
endif
|