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.AIX RS/6000 systems running AIX
README.FreeBSD The FreeBSD version of BSD Unix on Intel x86 README.FreeBSD The FreeBSD version of BSD Unix on Intel x86
README.HPUX HPPA systems running HPUX 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 Linux on Intel x86 and x86_64
README.Linux-Alpha Linux on DEC Alpha README.Linux-Alpha Linux on DEC Alpha
README.Linux-PPC Linux on PowerPC README.Linux-PPC Linux on PowerPC
README.Linux-m68k Linux on Motorola 68000 README.Linux-m68k Linux on Motorola 68000
README.MacOS Apple Mac systems running Mac OS X README.MacOS Apple Mac systems running Mac OS X
README.MS-Windows Microsoft Windows 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. README.Solaris Solaris (SunOS) on SPARC or Intel x86.
The documentation sources are in the `doc' subdirectory. The installation 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 # 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 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@ CFLAGS_FOR_PIC = @CFLAGS_FOR_PIC@
# Specify EXT_FOR_PIC_OBJECTS as `pic_o' if any special $(PIC) flags are # 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 is only used if EXT_FOR_SHARED_LIB was defined as `so' above.
# This command may reference $(SO_LOCATIONS_DIR). # 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 = gcc -shared # for Solaris etc.
LINK_SHARED_OBJ = @LINK_SHARED_OBJ@ 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: 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: 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 # doesn't work with non-local gotos, since we jump directly into the
# middle of a function. # 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 # For x86, gcc global registers only work with -fno-builtin
# and -fno-omit-frame-pointer. # 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. # 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 # 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 # library (b) the Boehm collector and (c) the C library that they need to be
# thread-safe. # thread-safe.
# #
# For Linux, Irix, Solaris, and HPUX, # For Linux, Solaris, and HPUX,
# the thread-enabled version of the Boehm # the thread-enabled version of the Boehm
# collector contains a reference to dlopen(), so # collector contains a reference to dlopen(), so
# if threads are enabled, we need to link with the # if threads are enabled, we need to link with the
# appropriate extra library for that (-ldl on Linux # 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 # XXX That should only be done if conservative GC
# is enabled. # is enabled.
# #
@@ -3127,16 +3106,6 @@ case "$host" in
THREAD_LIBS="" 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 ### # The threads stuff on HPUX is not yet enabled because
### # we don't have an HPUX box to test it on. ### # we don't have an HPUX box to test it on.
### *hpux*) ### *hpux*)
@@ -4415,35 +4384,6 @@ case "$host" in
EXT_FOR_SHARED_LIB=so 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*) *-cygwin*)
# disabled for now, since it hasn't been tested # disabled for now, since it hasn't been tested
# xxx_MSG_RESULT(yes) # xxx_MSG_RESULT(yes)
@@ -4695,13 +4635,6 @@ case "$FULLARCH" in
;; ;;
esac esac
;; ;;
alpha*-dec-osf*)
case "$COMPILER" in
cc)
LD_STATIC_FLAGS=-non_shared
;;
esac
;;
*-sun-solaris*) *-sun-solaris*)
case "$COMPILER" in case "$COMPILER" in
cc) cc)

View File

@@ -424,17 +424,12 @@
/* /*
** Configuration parameters for multithreaded execution support. ** 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 ** MR_THREAD_LOCAL_STORAGE is defined if the thread-local storage extension
** is supported. That is, the compiler extends the C language with the ** is supported. That is, the compiler extends the C language with the
** `__thread' specifier. ** `__thread' specifier.
** **
** MR_PTHREADS_WIN32 is defined if we are using the pthreads-win32 library. ** 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_THREAD_LOCAL_STORAGE
#undef MR_PTHREADS_WIN32 #undef MR_PTHREADS_WIN32

View File

@@ -17,15 +17,9 @@
#include <pthread.h> #include <pthread.h>
#include <semaphore.h> /* POSIX semaphores */ #include <semaphore.h> /* POSIX semaphores */
#if defined(MR_DIGITAL_UNIX_PTHREADS) #define MR_MUTEX_ATTR NULL
#define MR_MUTEX_ATTR pthread_mutexattr_default #define MR_COND_ATTR NULL
#define MR_COND_ATTR pthread_condattr_default #define MR_THREAD_ATTR NULL
#define MR_THREAD_ATTR pthread_attr_default
#else
#define MR_MUTEX_ATTR NULL
#define MR_COND_ATTR NULL
#define MR_THREAD_ATTR NULL
#endif
typedef pthread_t MercuryThread; typedef pthread_t MercuryThread;
typedef pthread_key_t MercuryThreadKey; 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_OBTAIN_GLOBAL_LOCK(where) MR_LOCK(&MR_global_lock, (where))
#define MR_RELEASE_GLOBAL_LOCK(where) MR_UNLOCK(&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_getspecific((key))
#define MR_GETSPECIFIC(key) \ #define MR_KEY_CREATE pthread_key_create
({ \
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
typedef struct { typedef struct {
void (*func)(void *); void (*func)(void *);

View File

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