Wed Feb 14 16:38:36 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de>
authorIan Lance Taylor <ian@airs.com>
Wed, 14 Feb 1996 21:43:54 +0000 (21:43 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 14 Feb 1996 21:43:54 +0000 (21:43 +0000)
* ldlang.c (lang_set_startof): Don't do anything for a
relocateable link.

* ldgram.y (mri_script_file): Call mri_draw_tree.
* mri.c (mri_draw_tree): Make globally visible.  Don't bother to
create memory regions.
(mri_load): Don't call mri_draw_tree.
* mri.h (mri_draw_tree): Declare.

* configure.tgt (m68*-*-psos): New target.
* emulparams/m68kpsos.sh: New file.
* scripttempl/psos.sc: New file.
* Makefile.in (ALL_EMULATIONS): Add em68kpsos.o.
(em68kpsos.c): New target.

ld/ChangeLog
ld/Makefile.in
ld/configure.tgt
ld/emulparams/.Sanitize
ld/emulparams/m68kpsos.sh [new file with mode: 0644]
ld/ldlang.c
ld/scripttempl/.Sanitize
ld/scripttempl/psos.sc [new file with mode: 0644]

index 81c80da..d8f1846 100644 (file)
@@ -1,3 +1,20 @@
+Wed Feb 14 16:38:36 1996  Martin Anantharaman  <martin@mail.imech.uni-duisburg.de>
+
+       * ldlang.c (lang_set_startof): Don't do anything for a
+       relocateable link.
+
+       * ldgram.y (mri_script_file): Call mri_draw_tree.
+       * mri.c (mri_draw_tree): Make globally visible.  Don't bother to
+       create memory regions.
+       (mri_load): Don't call mri_draw_tree.
+       * mri.h (mri_draw_tree): Declare.
+
+       * configure.tgt (m68*-*-psos): New target.
+       * emulparams/m68kpsos.sh: New file.
+       * scripttempl/psos.sc: New file.
+       * Makefile.in (ALL_EMULATIONS): Add em68kpsos.o.
+       (em68kpsos.c): New target.
+
 Wed Feb 14 11:09:25 1996  Ian Lance Taylor  <ian@cygnus.com>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Strip
index 75c8d9a..0255cc9 100644 (file)
@@ -205,7 +205,7 @@ ALL_EMULATIONS = ea29k.o ealpha.o earmaoutl.o earmaoutb.o \
        eppcnw.o eriscix.o esa29200.o eshl.o esh.o esparclynx.o esparcnbsd.o \
        est2000.o esun3.o esun4.o evanilla.o evax.o evsta.o \
        ez8001.o ez8002.o ei386pe.o earmpe.o eelf32b4300.o eelf32l4300.o \
-       eaixppc.o eaixrs6.o eppcmacos.o edelta68.o eppcpe.o
+       eaixppc.o eaixrs6.o eppcmacos.o edelta68.o eppcpe.o em68kpsos.o
 
 CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
        ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
@@ -485,6 +485,9 @@ em68k4knbsd.c:      $(srcdir)/emulparams/m68k4knbsd.sh \
 em68knbsd.c:   $(srcdir)/emulparams/m68knbsd.sh \
   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} m68knbsd
+em68kpsos.c:   $(srcdir)/emulparams/m68kpsos.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} m68kpsos
 ens32knbsd.c:  $(srcdir)/emulparams/ns32knbsd.sh \
   $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} ns32knbsd
index 6a14519..0712fee 100644 (file)
@@ -64,7 +64,7 @@ i[345]86-*-msdos*)    targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
 i[345]86-*-moss*)      targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
 i[345]86-*-winnt)      targ_emul=i386pe ;;
 i[345]86-*-pe)         targ_emul=i386pe ;;
-i[345]86-*-win32)      targ_emul=i386pe ;;
+i[345]86-*-cygwin32)   targ_emul=i386pe ;;
 m8*-*-*)               targ_emul=m88kbcs ;;
 a29k-*-udi)            targ_emul=sa29200 ;;
 a29k-*-ebmon)          targ_emul=ebmon29k ;;
@@ -91,6 +91,7 @@ m68*-*-hpux*)         targ_emul=hp3hpux ;;
 m68*-*-lynxos*)                targ_emul=m68klynx ;;
 m68*-hp*-netbsd*)      targ_emul=m68k4knbsd ;;
 m68*-*-netbsd*)                targ_emul=m68knbsd ;;
+m68*-*-psos*)          targ_emul=m68kpsos ;;
 hppa*-*-*elf*)         targ_emul=hppaelf ;;
 hppa*-*-lites*)                targ_emul=hppaelf ;;
 vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
@@ -118,6 +119,7 @@ powerpc-*-macos*)   targ_emul=ppcmacos ;;
 powerpc-*-netware*)    targ_emul=ppcnw ;;
 powerpcle-*-pe)         targ_emul=ppcpe ;;
 powerpcle-*-winnt*)     targ_emul=ppcpe ;;
+powerpcle-*-cygwin32)   targ_emul=ppcpe ;;
 powerpc-*-aix*)                targ_emul=aixppc ;;
 rs6000-*-aix*)         targ_emul=aixrs6 ;;
 w65-*-*)               targ_emul=w65 ;;
index 84dd7d5..a49c385 100644 (file)
@@ -93,6 +93,7 @@ m68kcoff.sh
 m68kelf.sh
 m68klynx.sh
 m68knbsd.sh
+m68kpsos.sh
 m88kbcs.sh
 mipsbig.sh
 mipsbsd.sh
diff --git a/ld/emulparams/m68kpsos.sh b/ld/emulparams/m68kpsos.sh
new file mode 100644 (file)
index 0000000..34eb8ca
--- /dev/null
@@ -0,0 +1,6 @@
+SCRIPT_NAME=psos
+OUTPUT_FORMAT="elf32-m68k"
+TEXT_START_ADDR=0x20000
+MAXPAGESIZE=0x1000
+ARCH=m68k
+TEMPLATE_NAME=elf32
index 36d3d77..4dedd98 100644 (file)
@@ -1,5 +1,5 @@
 /* Linker command language support.
-   Copyright (C) 1991, 92, 93, 94, 1995 Free Software Foundation, Inc.
+   Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
 
 This file is part of GLD, the Gnu Linker.
 
@@ -2249,6 +2249,9 @@ lang_set_startof ()
 {
   asection *s;
 
+  if (link_info.relocateable)
+    return;
+
   for (s = output_bfd->sections; s != NULL; s = s->next)
     {
       const char *secname;
index 71b8a59..f05fd27 100644 (file)
@@ -66,6 +66,7 @@ mipsbsd.sc
 nw.sc
 pe.sc
 ppcpe.sc
+psos.sc
 riscix.sc
 sa29200.sc
 sh.sc
diff --git a/ld/scripttempl/psos.sc b/ld/scripttempl/psos.sc
new file mode 100644 (file)
index 0000000..ab8c6c7
--- /dev/null
@@ -0,0 +1,61 @@
+cat <<EOF
+OUTPUT_FORMAT(${OUTPUT_FORMAT})
+OUTPUT_ARCH(${ARCH})
+${RELOCATING+${LIB_SEARCH_DIRS}}
+
+SECTIONS
+{
+  .text ${RELOCATING:-0} ${RELOCATING+${TEXT_START_ADDR}} : {
+    ${RELOCATING+ start = DEFINED(_START) ? _START : DEFINED(_start) ? _start : .;}
+    ${RELOCATING+ PROVIDE(__text = .);}
+    *(.text);
+    *(code);
+    *(const);
+    *(strings);
+    *(pSOS);
+    *(pROBE);
+    *(pNA);
+    *(pHILE);
+    *(pREPC);
+    *(pRPC);
+    ${CONSTRUCTING+ ___CTOR_LIST__ = .;}
+    ${CONSTRUCTING+ LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)}
+    ${CONSTRUCTING+ *(.ctors)}
+    ${CONSTRUCTING+ LONG(0);}
+    ${CONSTRUCTING+ ___CTOR_END__ = .;}
+    ${CONSTRUCTING+ ___DTOR_LIST__ = .;}
+    ${CONSTRUCTING+ LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2);}
+    ${CONSTRUCTING+ *(.dtors);}
+    ${CONSTRUCTING+ LONG(0);}
+    ${CONSTRUCTING+ ___DTOR_END__ = .;}
+    ${RELOCATING+ PROVIDE(__etext = .);}
+    ${RELOCATING+ PROVIDE(_etext = .);}
+  }
+  .data ${RELOCATING:-0} : ${RELOCATING+ AT(ADDR(.text) + SIZEOF(.text))} {
+    ${RELOCATING+ PROVIDE(__data = .);}
+    *(.data);
+    *(vars);
+    ${RELOCATING+ PROVIDE(__edata = .);}
+    ${RELOCATING+ PROVIDE(_edata = .);}
+  }
+  .bss ${RELOCATING:-0} :
+  {                                    
+    ${RELOCATING+ PROVIDE(__bss = .);}
+    *(.bss);
+    *(zerovars);
+    *(COMMON);
+    ${RELOCATING+ PROVIDE(__ebss = .);}
+    ${RELOCATING+ PROVIDE(__end = .);}
+    ${RELOCATING+ PROVIDE(_end = .);}
+    ${RELOCATING+ PROVIDE(_FreeMemStart = .);}
+  }
+  .stab 0 ${RELOCATING+(NOLOAD)} : 
+  {
+    *(.stab);
+  }
+  .stabstr 0 ${RELOCATING+(NOLOAD)} :
+  {
+    *(.stabstr);
+  }
+}
+EOF