aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog15
-rw-r--r--ld/Makefile.am8
-rw-r--r--ld/Makefile.in8
-rw-r--r--ld/configure.host6
-rw-r--r--ld/configure.tgt2
-rw-r--r--ld/emulparams/i386pe.sh3
-rw-r--r--ld/emulparams/i386pe_posix.sh9
7 files changed, 47 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b71e231..2f0154f 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,18 @@
+1999-08-05 Donn Terry <donn@interix.com>
+
+ * emulparams/i386pe.sh: Define ENTRY, SUBSYSTEM, and
+ INITIAL_SYMBOL_CHAQR.
+ * emulparams/i386pe_posix.sh: New file.
+ * Makefile.am (YACC): If bison is not in the source tree, use
+ @YACC@ rather than bison -y.
+ (LEX): If flex is not in the source tree, use @LEX@ rather than
+ flex.
+ (ALL_EMULATIONS): Add ei386pe_posix.o.
+ (ei386pe_posix.c): New target.
+ * configure.tgt (i[3456]86-*-interix*): New target.
+ * configure.host (i[3456]86-pc-interix*): New host.
+ * Makefile.in: Rebuild.
+
1999-08-03 Ian Lance Taylor <ian@zembu.com>
* emulparams/elf32ppc.sh (MAXPAGESIZE): Change to 0x10000.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 788e9ec..3e7f23b 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -9,9 +9,9 @@ SUBDIRS = po
tooldir = $(exec_prefix)/$(target_alias)
-YACC = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L$(srcdir)/../bison/ ; else echo bison -y ; fi`
+YACC = `if [ -f ../bison/bison ]; then echo ../bison/bison -y -L$(srcdir)/../bison/; else echo @YACC@; fi`
YFLAGS = -d
-LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo flex ; fi`
+LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi`
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
@@ -158,6 +158,7 @@ ALL_EMULATIONS = \
ei386nbsd.o \
ei386nw.o \
ei386pe.o \
+ ei386pe_posix.o \
elnk960.o \
em68k4knbsd.o \
em68kaout.o \
@@ -469,6 +470,9 @@ ei386nw.c: $(srcdir)/emulparams/i386nw.sh \
ei386pe.c: $(srcdir)/emulparams/i386pe.sh \
$(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386pe "$(tdir_i386pe)"
+ei386pe_posix.c: $(srcdir)/emulparams/i386pe_posix.sh \
+ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} i386pe_posix "$(tdir_i386pe_posix)"
elnk960.c: $(srcdir)/emulparams/lnk960.sh \
$(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS}
${GENSCRIPTS} lnk960 "$(tdir_lnk960)"
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 9f87088..b59641f 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -109,9 +109,9 @@ SUBDIRS = po
tooldir = $(exec_prefix)/$(target_alias)
-YACC = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L$(srcdir)/../bison/ ; else echo bison -y ; fi`
+YACC = `if [ -f ../bison/bison ]; then echo ../bison/bison -y -L$(srcdir)/../bison/; else echo @YACC@; fi`
YFLAGS = -d
-LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo flex ; fi`
+LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi`
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
@@ -262,6 +262,7 @@ ALL_EMULATIONS = \
ei386nbsd.o \
ei386nw.o \
ei386pe.o \
+ ei386pe_posix.o \
elnk960.o \
em68k4knbsd.o \
em68kaout.o \
@@ -1169,6 +1170,9 @@ ei386nw.c: $(srcdir)/emulparams/i386nw.sh \
ei386pe.c: $(srcdir)/emulparams/i386pe.sh \
$(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386pe "$(tdir_i386pe)"
+ei386pe_posix.c: $(srcdir)/emulparams/i386pe_posix.sh \
+ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} i386pe_posix "$(tdir_i386pe_posix)"
elnk960.c: $(srcdir)/emulparams/lnk960.sh \
$(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS}
${GENSCRIPTS} lnk960 "$(tdir_lnk960)"
diff --git a/ld/configure.host b/ld/configure.host
index 701d46c..f99c811 100644
--- a/ld/configure.host
+++ b/ld/configure.host
@@ -100,6 +100,12 @@ i[3456]86-*-lynxos*)
HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -lc -lm /lib/initn.o'
;;
+i[3456]86-pc-interix*)
+ HOSTING_CRT0='$$INTERIX_ROOT/usr/lib/crt0.o'
+ NATIVE_LIB_DIRS='$$INTERIX_ROOT/usr/lib/'
+ HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else gcc -print-libgcc-file-name; fi` -L $$X/local_bin -L $$INTERIX_ROOT/usr/lib -lc -lcpsx -lc -lcpsx $$INTERIX_ROOT/usr/lib/psxdll.a $$INTERIX_ROOT/usr/lib/psxdll2.a'
+ ;;
+
mips*-dec-bsd*)
HOSTING_CRT0=/usr/lib/crt0.o
;;
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 4a7f6e6..ddf2445 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -115,6 +115,8 @@ i[3456]86-*-cygwin*) targ_emul=i386pe ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-mingw32*) targ_emul=i386pe ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+i[3456]86-*-interix*) targ_emul=i386pe_posix;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;;
i[3456]86-*-beospe*) targ_emul=i386beos ;;
i[3456]86-*-beos*) targ_emul=elf_i386_be ;;
i[3456]86-*-vxworks*) targ_emul=i386aout ;;
diff --git a/ld/emulparams/i386pe.sh b/ld/emulparams/i386pe.sh
index 188a8ad..e5df29f 100644
--- a/ld/emulparams/i386pe.sh
+++ b/ld/emulparams/i386pe.sh
@@ -3,3 +3,6 @@ SCRIPT_NAME=pe
OUTPUT_FORMAT="pei-i386"
RELOCATEABLE_OUTPUT_FORMAT="pe-i386"
TEMPLATE_NAME=pe
+ENTRY="___mainCRTStartup"
+SUBSYSTEM=3
+INITIAL_SYMBOL_CHAR=\"_\"
diff --git a/ld/emulparams/i386pe_posix.sh b/ld/emulparams/i386pe_posix.sh
new file mode 100644
index 0000000..37f51b5
--- /dev/null
+++ b/ld/emulparams/i386pe_posix.sh
@@ -0,0 +1,9 @@
+ARCH=i386
+SCRIPT_NAME=pe
+OUTPUT_FORMAT="pei-i386"
+RELOCATEABLE_OUTPUT_FORMAT="pe-i386"
+TEMPLATE_NAME=pe
+ENTRY="___PosixProcessStartup"
+SUBSYSTEM=7
+EXECUTABLE_NAME=a.out
+INITIAL_SYMBOL_CHAR=\"_\"