[m-rev.] for review: drop IRIX support

Julien Fischer jfischer at opturion.com
Mon Jun 16 13:41:52 AEST 2014


Drop support for Mercury on IRIX.

IRIX itself is more or less dead and the Mercury support for it has not been
tested for many years.

configure.ac:
compiler/notes/overall_design.m:
doc/user_guide.texi:
scripts/mgnuc.in:
 	As above.

NEWS:
 	Announce the above.

Julien.

diff --git a/NEWS b/NEWS
index 6de1577..43ac4b2 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,10 @@ Changes to the Mercury standard library:
  * We have added a module that implements barriers for concurrent
    programming.  This module is a contribution from Mission Critical IT.

+Changes to the Mercury compiler:
+
+* We have removed support for IRIX.
+
  Changes to the extras distribution:

  * We have added support for Unicode and other enhancements to the lex and
diff --git a/compiler/notes/overall_design.html b/compiler/notes/overall_design.html
index d950f10..8dd27c0 100644
--- a/compiler/notes/overall_design.html
+++ b/compiler/notes/overall_design.html
@@ -135,8 +135,6 @@ gets compiled to a single library or executable program.
  On most systems, mutual recursion between libraries is not very well supported.
  On Unix, for static linking
  you need to list the libraries more than once on the command line.
-On IRIX, mutual recursion between shared libraries
-prevents the use of "QuickStart".
  And on Windows, allowing mutual recursion between different DLLs
  requires some fairly major contortions.

diff --git a/configure.ac b/configure.ac
index 720500a..5b6d86e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -287,12 +287,7 @@ DEFAULT_MERCURY_DEBUGGER_INIT_DIR=$LIBDIR/mdb
  AC_SUBST(DEFAULT_MERCURY_DEBUGGER_INIT_DIR)
  DEFAULT_MERCURY_DEBUGGER_DOC=$DEFAULT_MERCURY_DEBUGGER_INIT_DIR/mdb_doc
  AC_SUBST(DEFAULT_MERCURY_DEBUGGER_DOC)
-#-----------------------------------------------------------------------------#
-case "$host" in
-    mips-sgi-irix5.*)
-        AC_MSG_WARN(*** Read README.IRIX-5 before proceeding!)
-        ;;
-esac
+
  #-----------------------------------------------------------------------------#
  # MMC_INVOKE_CMD is the the command used to invoke mercury_compile in
  # scripts/mmc.
@@ -2486,19 +2481,6 @@ case "$ac_cv_prog_gcc" in yes)
      esac
      CFLAGS_FOR_GOTOS="$CFLAGS_FOR_GOTOS $CFLAGS_FOR_NO_MOVE_LOOP_INVARIANTS"
      case "$host" in
-        mips-sgi-irix5.*)
-            # Non-local gotos don't work with shared libraries on Irix 5,
-            # which causes lots of complications.
-            # Now that we have the hlc back-end, it's not worth
-            # supporting them.
-            MERCURY_MSG("Mercury no longer supports gcc non-local on Irix 5")
-            mercury_cv_asm_labels=no
-            mercury_cv_gcc_labels=no
-            CFLAGS_FOR_GOTOS="$CFLAGS_FOR_GOTOS -non_shared -mno-abicalls"
-            LIBRARY_PATH_FOR_GOTOS="$NONSHARED_LIB_DIR:/usr/lib/nonshared"
-            ;;
-    esac
-    case "$host" in
          mips-*)
              CFLAGS_FOR_GOTOS="$CFLAGS_FOR_GOTOS -fomit-frame-pointer"
              ;;
@@ -3161,14 +3143,6 @@ case "$host" in
  ###     CFLAGS_FOR_THREADS="" # XXX incomplete
  ###     THREAD_LIBS="-lpthread -lrt" ;;

-### # The threads stuff on IRIX is not yet enabled because
-### # we don't have an IRIX box to test it on.
-### # (XXX perhaps we should enable it anyway, so it is easier to test?)
-### *irix*)
-###     CFLAGS_FOR_THREADS="-DIRIX_THREADS"
-###     THREAD_LIBS="-lpthread"
-###     ;;
-
      *)
          # Multithreading not (yet) supported on other architectures.
          # For multithreading, we need (1) Posix threads and
@@ -4470,35 +4444,6 @@ case "$host" in
          EXT_FOR_PIC_OBJECTS=o
          EXT_FOR_LINK_WITH_PIC_OBJECTS=o
          ;;
-    mips-sgi-irix5.*)
-        LINK_SHARED_OBJ="ld -shared \
-            -update_registry \$(SO_LOCATIONS_DIR)so_locations \
-            -quickstart_info -rdata_shared"
-        LINK_SHARED_OBJ_SH="ld -shared \
-            -update_registry \${SO_LOCATIONS_DIR}so_locations \
-            -quickstart_info -rdata_shared"
-        ERROR_UNDEFINED="-no_unresolved"
-        EXE_RPATH_OPT="-Wl,-rpath,"
-        EXE_RPATH_SEP=":"
-        SHLIB_RPATH_OPT="-rpath "
-        SHLIB_RPATH_SEP=":"
-        # -fpic not needed on IRIX, since it is the default
-        CFLAGS_FOR_PIC=
-        EXT_FOR_PIC_OBJECTS=o
-        EXT_FOR_LINK_WITH_PIC_OBJECTS=o
-        # shared libraries are incompatible with gcc non-local gotos,
-        case "$GRADE" in
-            reg.gc | none.gc | hlc.gc)
-                AC_MSG_RESULT(yes)
-                EXT_FOR_SHARED_LIB=so
-                ;;
-            *)
-                EXT_FOR_SHARED_LIB=a
-                AC_MSG_RESULT(no)
-                AC_MSG_RESULT(Read README.IRIX-5)
-                ;;
-        esac
-        ;;
      *-cygwin*)
          # disabled for now, since it hasn't been tested
          # xxx_MSG_RESULT(yes)
diff --git a/doc/user_guide.texi b/doc/user_guide.texi
index f8a103e..cea1f54 100644
--- a/doc/user_guide.texi
+++ b/doc/user_guide.texi
@@ -10186,14 +10186,6 @@ The directory containing the installed Mercury standard library.
  the MERCURY_STDLIB_DIR environment variable.

  @sp 1
- at item MERCURY_NONSHARED_LIB_DIR
- at vindex MERCURY_NONSHARED_LIB_DIR
-For IRIX 5, this environment variable can be used to specify a
-directory containing a version of libgcc.a which has been compiled with
- at samp{-mno-abicalls}.  See the file @samp{README.IRIX-5} in the Mercury
-source distribution.
-
- at sp 1
  @item MERCURY_OPTIONS
  @vindex MERCURY_OPTIONS
  A list of options for the Mercury runtime system,
diff --git a/scripts/mgnuc.in b/scripts/mgnuc.in
index e8df6dc..cca5f05 100644
--- a/scripts/mgnuc.in
+++ b/scripts/mgnuc.in
@@ -523,18 +523,6 @@ esac

  ARCH_OPTS=""
  case "$FULLARCH" in
-    mips-sgi-irix5.*)
-        # Nonlocal gotos don't work with PIC, which is the default for Irix 5,
-        # so if nonlocal gotos are enabled we need to disable the use of
-        # shared libraries.
-        case $non_local_gotos in
-            true)
-                LIBRARY_PATH="$NONSHARED_LIB_DIR:/usr/lib/nonshared:$LIBRARY_PATH"
-                export LIBRARY_PATH
-                AS_OPTS="-non_shared"
-            ;;
-        esac
-        ;;
      i*86-*|x86_64*)
          # The use of stack_pointer in the ASM_JUMP macro defined in
          # runtime/mercury_goto.h causes lots of warnings about using possibly



More information about the reviews mailing list