Porting R6B to Unixware

Vance Shipley vances@REDACTED
Thu Dec 2 00:40:38 CET 1999

I have just completed my initial port of R6B-0 to SCO Unixware v2.1.3.

Below are the steps neccesary to make it compile.  You will also have
to install the BSD Compatibility (bsdcompat) and Graphics Development
(dtxtdev) packages.  The later is needed for the X11 header files.


1)      In ./erts/autoconf/i386-univel-sysv4.2MP/config.h:

        Undefine HAVE_IEEE_HANDLER

		(Note:  Unixware requires the header file <fp.h>
                    In the last release just adding this define to sys.c
                    worked but now there are additional complications.
                    By undefining HAVE_IEEE_HANDLER you disable support
                    for the floating point signals altogether

2)      In ./lib/erl_interface/src/i386-univel-sysv4.2MP/Makefile:


		(Note:  The configure script should handle this and does in
                    fact define NO_PRAGMA_WEAK in config.h however it
                    doesn't seem to get used.  The linker will complain
                    unless you include this

3)      In ./lib/gs/c_src/lib/tcl7.6/compat/strncasecmp.c at line 66:

        Fix broken prototype.  Change:

                int             strcasecmp _ANSI_ARGS_((CONST char *s1,
                                     CONST char *s2, size_t n));

                int             strcasecmp _ANSI_ARGS_((CONST char *s1,
                                     CONST char *s2));

		(Note:  This is simply a mistake which apparently doesn't show
                    up in other ports.

3)      In ./lib/etk/c_src/etk_drv.c at line 49:

        Add an include for synch.h:

                #if defined(POSIX_THREADS)
                #include <pthread.h>

                typedef pthread_t       THREAD_T;
                typedef pthread_mutex_t LOCK_T;

                #elif defined(SOLARIS_THREADS)
                #include <thread.h>
        +       #include <synch.h>

                typedef thread_t        THREAD_T;
                typedef mutex_t         LOCK_T;

		(Note:  Unixware threads are very much like Solaris threads but
                    require the synch.h header file.


More information about the erlang-questions mailing list