aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/t-nwld
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2004-09-03 18:10:08 +0000
committerRichard Henderson <rth@gcc.gnu.org>2004-09-03 11:10:08 -0700
commit61fec9ffac35d5cb530c9f1e757e7796d8488281 (patch)
tree243e6c82b40956cbdbedeb566a077006e70cd744 /gcc/config/i386/t-nwld
parent04efec81275ba055bb910cfd43d0bb919f21a940 (diff)
downloadgcc-61fec9ffac35d5cb530c9f1e757e7796d8488281.zip
gcc-61fec9ffac35d5cb530c9f1e757e7796d8488281.tar.gz
gcc-61fec9ffac35d5cb530c9f1e757e7796d8488281.tar.bz2
configure.in: Remove target-libstdc++-v3 from noconfigdirs for *-*-netware...
/ * configure.in: Remove target-libstdc++-v3 from noconfigdirs for *-*-netware, but add target-libmudflap. Consolidate *-*-netware targets (of which really only i?86 exists) into a single entry. * configure: Likewise. gcc/ * config.gcc: Resurrect NetWare as a target. Handle special case of Novell linker to be used (specified through --with-ld=) and threading model of either Posix (default) or NKS. * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER. * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New. * config/i386/netware.c, config/i386/netware.h: New. * config/i386/nwld.c, config/i386/nwld.h: New. * config/i386/netware-crt0.c: New. * config/i386/netware-libgcc.c: New. * config/i386/netware-libgcc.def: New. * config/i386/netware-libgcc.exp: New. * config/i386/t-netware, config/i386/t-nwld: New. * gthr-nks.h: New. * doc/install.texi: Document NKS threading model. gcc/cp/ * g++spec.c (MATH_LIBRARY_PROFILE): Default to MATH_LIBRARY rather than "-lm". gcc/testsuite/ * g++.dg/abi/bitfield5.C: Use -mno-ms-bitfields. * g++.old-deja/g++.jason/thunk2.C: xfail for NetWare. * g++.old-deja/g++.law/profile1.C: xfail for NetWare. * g++.old-deja/g++.other/store-expr1.C: xfail for NetWare. * gcc.c-torture/compile/20001109-1.c: xfail for NetWare. * gcc.c-torture/compile/20001109-2.c: xfail for NetWare. * gcc.c-torture/execute/multi-ix.c: Use __builtin_bzero rather than the non-portable bzero. * gcc.dg/20010912-1.c: xfail for NetWare. * gcc.dg/20020426-2.c: xfail for NetWare. * gcc.dg/20021014-1.c: xfail for NetWare. * gcc.dg/20021018-1.c: xfail for NetWare. * gcc.dg/20030213-1.c: xfail for NetWare. * gcc.dg/20030225-1.c: xfail for NetWare. * gcc.dg/20030708-1.c: xfail for NetWare. * gcc.dg/builtins-config.h: Also exclude NetWare. * gcc.dg/format/format.h: Define restrict only if not already defined. * gcc.dg/nest.c: xfail for NetWare. * gcc.dg/special/gcsec-1.c: Don't pass -static for NetWare. * lib/target-supports.exp (check_visibility_available): Exclude NetWare. fixincludes/ * inclhack.def: Suppress exception_structure and math_exception for NetWare headers. * fixincl.x: Regenerate. libstdc++-v3/ * crossconfig.m4: Add NetWare as a target. * configure: Regenerate. From-SVN: r87040
Diffstat (limited to 'gcc/config/i386/t-nwld')
-rw-r--r--gcc/config/i386/t-nwld60
1 files changed, 60 insertions, 0 deletions
diff --git a/gcc/config/i386/t-nwld b/gcc/config/i386/t-nwld
new file mode 100644
index 0000000..d67bc63
--- /dev/null
+++ b/gcc/config/i386/t-nwld
@@ -0,0 +1,60 @@
+CRTSTUFF_T_CFLAGS = -mpreferred-stack-boundary=2
+CRT0STUFF_T_CFLAGS = -mpreferred-stack-boundary=2 $(INCLUDES)
+# this is a slight misuse (it's not an assembler file)
+CRT0_S = $(srcdir)/config/i386/netware-crt0.c
+MCRT0_S = $(srcdir)/config/i386/netware-crt0.c
+
+libgcc.def: $(srcdir)/config/i386/t-nwld
+ echo "module libgcc_s" >$@
+
+libc.def: $(srcdir)/config/i386/t-nwld
+ echo "module libc" >$@
+
+libcpre.def: $(srcdir)/config/i386/t-nwld
+ echo "start _LibCPrelude" >$@
+ echo "exit _LibCPostlude" >>$@
+ echo "check _LibCCheckUnload" >>$@
+
+posixpre.def: $(srcdir)/config/i386/t-nwld
+ echo "start POSIX_Start" >$@
+ echo "exit POSIX_Stop" >>$@
+ echo "check POSIX_CheckUnload" >>$@
+
+nwld.o: $(srcdir)/config/i386/nwld.c $(RTL_H) $(TREE_H) $(CONFIG_H) $(TM_P_H)
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/i386/nwld.c
+
+
+s-crt0: $(srcdir)/unwind-dw2-fde.h
+
+# Build a shared libgcc library for NetWare.
+
+SHLIB_EXT = .nlm
+SHLIB_SONAME = @shlib_so_name@.nlm
+SHLIB_NAME = @shlib_dir@@shlib_so_name@.nlm
+SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
+SHLIB_DEF = $(srcdir)/config/i386/netware-libgcc.def
+SHLIB_MAP = $(srcdir)/config/i386/netware-libgcc.exp
+SHLIB_SRC = $(srcdir)/config/i386/netware-libgcc.c
+
+SHLIB_LINK = set -e; \
+ cat $(SHLIB_DEF) >@shlib_so_name@.def; \
+ echo "version $(gcc_version)" | sed "s!\.!,!g" >>@shlib_so_name@.def; \
+ touch libgcc/build; \
+ echo "build $$$$(($$$$(<libgcc/build)+0))" >>@shlib_so_name@.def; \
+ echo "export @$(SHLIB_MAP)" >>@shlib_so_name@.def; \
+ if mpkxdc -n -p @shlib_so_name@.xdc; \
+ then echo "xdcdata @shlib_so_name@.xdc" >>@shlib_so_name@.def; \
+ else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \
+ fi; \
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \
+ $(SHLIB_SRC) -static-libgcc -lnetware \
+ -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_so_name@.def; \
+ rm -f @shlib_so_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_so_name@.imp; \
+ echo $$$$(($$$$(<libgcc/build)+1)) >libgcc/build
+
+# $(slibdir) double quoted to protect it from expansion while building
+# libgcc.mk. We want this delayed until actual install time.
+SHLIB_INSTALL = \
+ $$(SHELL) $(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+ $$(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+ $$(INSTALL_DATA) @shlib_so_name@.imp $$(DESTDIR)$$(libsubdir)/