mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-11 20:03:28 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
4
NEWS
@@ -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:
|
||||
|
||||
|
||||
36
README.OSF1
36
README.OSF1
@@ -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.
|
||||
71
configure.ac
71
configure.ac
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user