Drop support for OSF/1.

configure.ac:
	Drop support for OSF/1.

	Delete more IRIX stuff.

configure.ac:
runtime/mercury_conf.h.in:
runtime/mercury_thread.h:
	Delete workarounds required when using the Digital Unix pthreads
	library.

Mmake.common.in:
runtime/mercury_wrapper.c:
	Delete stuff for IRIX.

README.OSF1:
	Delete this file.

.README.in:
	Delete the pointers to the readme files for IRIX and OSF/1.

NEWS:
	Announce the dropping of support for OSF/1.
This commit is contained in:
Julien Fischer
2014-06-16 15:08:05 +10:00
parent 77e527f92b
commit d256d24ea5
8 changed files with 12 additions and 143 deletions

View File

@@ -67,14 +67,12 @@ platform, if there is one:
README.AIX RS/6000 systems running AIX
README.FreeBSD The FreeBSD version of BSD Unix on Intel x86
README.HPUX HPPA systems running HPUX
README.IRIX-5 SGI IRIX version 5.x
README.Linux Linux on Intel x86 and x86_64
README.Linux-Alpha Linux on DEC Alpha
README.Linux-PPC Linux on PowerPC
README.Linux-m68k Linux on Motorola 68000
README.MacOS Apple Mac systems running Mac OS X
README.MS-Windows Microsoft Windows
README.OSF1 DEC Alpha systems running OSF/1 version 3.x
README.Solaris Solaris (SunOS) on SPARC or Intel x86.
The documentation sources are in the `doc' subdirectory. The installation

View File

@@ -62,8 +62,6 @@ USE_DLLS = @USE_DLLS@
# Specify any special flags to pass to the C compiler when creating objects
# for a shared library (e.g. -fpic or -fPIC for gcc).
# For Irix 5 and Alpha/OSF, position-independent code is the default,
# so leave this blank.
CFLAGS_FOR_PIC = @CFLAGS_FOR_PIC@
# Specify EXT_FOR_PIC_OBJECTS as `pic_o' if any special $(PIC) flags are
@@ -76,9 +74,6 @@ EXT_FOR_PIC_OBJECTS = @EXT_FOR_PIC_OBJECTS@
# This is only used if EXT_FOR_SHARED_LIB was defined as `so' above.
# This command may reference $(SO_LOCATIONS_DIR).
#
# LINK_SHARED_OBJ = ld -shared # for Irix 5
# LINK_SHARED_OBJ = gcc -assert nodefinitions
# # for SunOS 4 (completely untested)
# LINK_SHARED_OBJ = gcc -shared # for Solaris etc.
LINK_SHARED_OBJ = @LINK_SHARED_OBJ@

4
NEWS
View File

@@ -29,7 +29,9 @@ Changes to the Mercury standard library:
Changes to the Mercury compiler:
* We have removed support for IRIX.
* We have removed legacy support for the following systems:
- IRIX
- OSF/1
Changes to the extras distribution:

View File

@@ -1,36 +0,0 @@
The sed utility supplied with DEC OSF/1 V3.2 has a fixed limit
which causes the Mercury autoconfiguration script to fail with a
message such as:
"sed: There are too many commands for the
s%@READLINE_LIBRARIES@%-lreadline -ltermcap%g function."
The work-around is to install GNU sed.
The dynamic loader supplied with DEC OSF/1 V3.2 has a fixed limit which
causes dynamically linked executables to fail with a segmentation
violation before main() is entered, if the shared library path is too
long. The work-around is to ensure that you do not specify a long
directory name in the `--prefix' option to `configure' when installing
Mercury (up to 24 characters long is OK, but more than that may
cause the fixed limit to be exceeded), or to upgrade to a more
recent version of the OS.
The dynamic loader supplied with DEC OSF/1 V3.2 fails to conform to the
semantics mandated by the ANSI/ISO C standard, and this breaks the
Mercury profiler. The symptom is that the profiler will abort with a
message such as "Software Error: map__lookup failed". The work-around
is to link the program that is being profiled statically, or to run the
program with the environment variable LD_BIND_NOW set to a non-null
value.
For certain (rare) combinations of program and compilation options, the
dynamic loader supplied with DEC OSF/1 V3.2 will abort execution of the
compiled program with a message such as "/sbin/loader: Fatal Error:
lazy_text_resolve: symbol _entry_mercury__io__write_string_3_0 should
not have any relocation entry". We don't know the exact cause of this,
but we suspect that it is a bug in the dynamic loader. The work-around
is to link the program in question statically, or to run the program
with the environment variable LD_BIND_NOW set to a non-null value.
Some versions of GNU strip do not work with Compaq Tru64 UNIX V5.1.
If you get a message like "bash: Cannot allocate space for bss" when
running a program, use the system's strip command, not GNU strip.

View File

@@ -2457,11 +2457,6 @@ AC_SUBST(MR_DARWIN_SETJMP_WORKAROUND)
# doesn't work with non-local gotos, since we jump directly into the
# middle of a function.
#
# For Irix 5, gcc labels don't work with shared libraries,
# so if we're using gcc labels, we need to use non-shared libraries,
# which means passing -non_shared and -mno-abicalls and also setting
# LIBRARY_PATH.
#
# For x86, gcc global registers only work with -fno-builtin
# and -fno-omit-frame-pointer.
#
@@ -3010,33 +3005,17 @@ esac
#-----------------------------------------------------------------------------#
# Figure out which flavour of pthreads to use, since none of the
# implementations seem to be exactly the same
case "$host" in
alpha*-dec-osf*)
mercury_cv_use_digital_unix_threads=yes
;;
*)
mercury_cv_use_digital_unix_threads=no
;;
esac
if test $mercury_cv_use_digital_unix_threads = yes; then
AC_DEFINE(MR_DIGITAL_UNIX_PTHREADS)
fi
# Figure out what options we need to pass to the C compiler for multithreading.
# We may need to pass different options to tell (a) the Mercury runtime and
# library (b) the Boehm collector and (c) the C library that they need to be
# thread-safe.
#
# For Linux, Irix, Solaris, and HPUX,
# For Linux, Solaris, and HPUX,
# the thread-enabled version of the Boehm
# collector contains a reference to dlopen(), so
# if threads are enabled, we need to link with the
# appropriate extra library for that (-ldl on Linux
# and Solaris, -lrt on HPUX, and nothing on Irix).
# and Solaris and -lrt on HPUX).
# XXX That should only be done if conservative GC
# is enabled.
#
@@ -3127,16 +3106,6 @@ case "$host" in
THREAD_LIBS=""
;;
### # The threads stuff on Digital Unix (OSF) is not yet enabled because
### # the Boehm garbage collector doesn't support threads on that platform
### # XXX probably we should enable it but report an error if you try to
### # use an *.par.gc* grade
### # XXX is this fixed in the Boehm collector now?
### *-osf*)
### CFLAGS_FOR_THREADS=""
### THREAD_LIBS="-lpthreads -lmach -lc_r"
### ;;
### # The threads stuff on HPUX is not yet enabled because
### # we don't have an HPUX box to test it on.
### *hpux*)
@@ -4415,35 +4384,6 @@ case "$host" in
EXT_FOR_SHARED_LIB=so
;;
alpha*-dec-osf*)
AC_MSG_RESULT(yes)
if test "$GCC_PROG" != ""; then
# use gcc to link shared objects
LINK_SHARED_OBJ="$GCC_PROG -shared \
-Wl,-O3,-update_registry,\$(SO_LOCATIONS_DIR)so_locations"
LINK_SHARED_OBJ_SH="gcc -shared \
-Wl,-O3,-update_registry,\${SO_LOCATIONS_DIR}so_locations"
ERROR_UNDEFINED="-Wl,-error_unresolved"
EXE_RPATH_OPT="-Wl,-rpath,"
SHLIB_RPATH_OPT="-Wl,-rpath,"
else
# use cc to link shared objects
LINK_SHARED_OBJ="cc -shared \
-update_registry \$(SO_LOCATIONS_DIR)so_locations"
LINK_SHARED_OBJ_SH="cc -shared \
-update_registry \${SO_LOCATIONS_DIR}so_locations"
ERROR_UNDEFINED="-error_unresolved"
EXE_RPATH_OPT="-rpath "
SHLIB_RPATH_OPT="-rpath "
fi
EXE_RPATH_SEP=":"
SHLIB_RPATH_SEP=":"
EXT_FOR_SHARED_LIB=so
# -fpic not needed on Alpha/OSF, since it is the default
CFLAGS_FOR_PIC=
EXT_FOR_PIC_OBJECTS=o
EXT_FOR_LINK_WITH_PIC_OBJECTS=o
;;
*-cygwin*)
# disabled for now, since it hasn't been tested
# xxx_MSG_RESULT(yes)
@@ -4695,13 +4635,6 @@ case "$FULLARCH" in
;;
esac
;;
alpha*-dec-osf*)
case "$COMPILER" in
cc)
LD_STATIC_FLAGS=-non_shared
;;
esac
;;
*-sun-solaris*)
case "$COMPILER" in
cc)

View File

@@ -424,17 +424,12 @@
/*
** Configuration parameters for multithreaded execution support.
**
** MR_DIGITAL_UNIX_PTHREADS is used to distinguish places where
** Digital Unix doesn't conform to the letter of the Posix standard
** for Pthreads.
**
** MR_THREAD_LOCAL_STORAGE is defined if the thread-local storage extension
** is supported. That is, the compiler extends the C language with the
** `__thread' specifier.
**
** MR_PTHREADS_WIN32 is defined if we are using the pthreads-win32 library.
*/
#undef MR_DIGITAL_UNIX_PTHREADS
#undef MR_THREAD_LOCAL_STORAGE
#undef MR_PTHREADS_WIN32

View File

@@ -17,15 +17,9 @@
#include <pthread.h>
#include <semaphore.h> /* POSIX semaphores */
#if defined(MR_DIGITAL_UNIX_PTHREADS)
#define MR_MUTEX_ATTR pthread_mutexattr_default
#define MR_COND_ATTR pthread_condattr_default
#define MR_THREAD_ATTR pthread_attr_default
#else
#define MR_MUTEX_ATTR NULL
#define MR_COND_ATTR NULL
#define MR_THREAD_ATTR NULL
#endif
#define MR_MUTEX_ATTR NULL
#define MR_COND_ATTR NULL
#define MR_THREAD_ATTR NULL
typedef pthread_t MercuryThread;
typedef pthread_key_t MercuryThreadKey;
@@ -150,18 +144,8 @@ MR_null_thread(void);
#define MR_OBTAIN_GLOBAL_LOCK(where) MR_LOCK(&MR_global_lock, (where))
#define MR_RELEASE_GLOBAL_LOCK(where) MR_UNLOCK(&MR_global_lock, (where))
#if defined(MR_DIGITAL_UNIX_PTHREADS)
#define MR_GETSPECIFIC(key) \
({ \
pthread_addr_t gstmp; \
pthread_getspecific((key), &gstmp); \
(void *) gstmp; \
})
#define MR_KEY_CREATE pthread_keycreate
#else
#define MR_GETSPECIFIC(key) pthread_getspecific((key))
#define MR_KEY_CREATE pthread_key_create
#endif
#define MR_GETSPECIFIC(key) pthread_getspecific((key))
#define MR_KEY_CREATE pthread_key_create
typedef struct {
void (*func)(void *);

View File

@@ -407,10 +407,8 @@ MR_TypeStat MR_type_stat_c_compare;
** - The Mercury runtime finalization, namely mercury_runtime_terminate(),
** calls io__finalize_state/2 in the Mercury library.
**
** But, to enable Quickstart of shared libraries on Irix 5,
** and in general to avoid various other complications
** with shared libraries and/or Windows DLLs,
** we need to make sure that we don't have any undefined
** In general, to avoid various complications with shared libraries and/or
** Windows DLLs, we need to make sure that we don't have any undefined
** external references when building the shared libraries.
** Hence the statically linked init file saves the addresses of those
** procedures in the following global variables.