From: franks@ntu.ac.SG (Frank Siebenlist)
Subject: 19.3 installation on decstation/ultrix4.2 with native cc
Organization: WU Mail/News Gateway
Date: Fri, 11 Sep 1992 19:17:41 GMT


Find attached the descriptions of three problems 
with work-arounds (sigh...) and the used config.h.

First impression of 19.3:
installation "somewhat" easier than 19.2, 
colour-version doesn't bomb anymore on MacX1.1.7,
popup menus stay on the (visible) screen!,
more defined menus (be careful, emacs might become user friendly...),
no scrollbars yet (hint, hint, hint....)
great job, THANKS.
Rgds, Frank.

ps. Is there any site keeping split files of the distribution?
    (it is still kind of a miracle to ftp 8MB across the pacific in one go)

____________________________________________________________________________
1. src/lwlib/lwlib.c wouldn't compile:

******
cc -c -O -Wf,-XNh2000 -Olimit 2000 -I/usr/include/mit -I/usr/include       
-DUSE_LUCID lwlib.c
ccom: Error: lwlib.c, line 400: syntax error
            char* real_name = (char*) __builtin_alloca (length + 2);
      ---------------------------------------------------------^
******
The compiler is not very descriptive, but the offending line reads:

      char* real_name = (char*)alloca (length + 2);

Not sure what is wrong with that (?), 
kind of odd that the compiler expands the macro in the error message (??),
guiding the compiler step by step thru the compilation process worked
(???):

      char* real_name;
      length = length + 2;
      real_name = (char*)alloca (length);

____________________________________________________________________________
2. src/gmalloc.c wouldn't compile:

******
cc -g   -I/usr/include/mit -Demacs  -I./lwlib   -c gmalloc.c -o gmalloc.o
ccom: Error: /usr/include/stdio.h, line 92: illegal type combination
      typedef unsigned int	unsigned int;		
      -------------------------------------^
ccom: Error: gmalloc.c, line 1241: redeclaration of old_free_hook
      static void (*old_free_hook) ();
      -------------------------------^
ccom: Error: gmalloc.c, line 1242: redeclaration of old_malloc_hook
      static char *(*old_malloc_hook) ();
      ----------------------------------^
ccom: Error: gmalloc.c, line 1243: redeclaration of old_realloc_hook
      static char *(*old_realloc_hook) ();
      -----------------------------------^
******
The gmalloc.c which came with 19.2 had no problem but seems "very"
different.
19.3 seems to work with the 19.2 version of gmalloc.c though,
but there must be a reason for having a new version (?),
so I decided not to use gmalloc at all but the system's one.
____________________________________________________________________________
3. Changed ymakefile:

original reads:

  #define LIBS_TERMCAP -lcurses

had to add two more libs:

  #define LIBS_TERMCAP -lcurses -ltermcap -lcursesX

19.2 core-dumped when curses was substituted by cursesX (?), 
haven't tried it yet for 19.3.
____________________________________________________________________________
4. config.h:

/* Allow Emacses larger than 16 megabytes.  */

#ifndef VALBITS
#define VALBITS 26
#define GCTYPEBITS 5
#endif

/* Define USE_GCC to compile with GCC.
   Define USE_LCC to compile with Lucid C.
   Otherwise, "cc" will be used.
   You -must- use an ANSI C compiler.
   This has to come before include the m- file.
 */

/* #define USE_GCC */
/* #define USE_LCC */

/* Include here a s- file that describes the system type you are using.
   See the file ../etc/MACHINES for a list of systems and the names of
   the s- files to use for them.  See s-template.h for documentation on 
   writing s- files.
 */
#include "s/s-bsd4-3.h"

/* Include here a m- file that describes the machine and system you use.
   See the file ../etc/MACHINES for a list of machines and the names of 
   the m- files to use for them.   See m-template.h for info on what m- 
   files should define.
 */
#include "m/m-pmax.h"

/* Load in the conversion definitions if this system
   needs them and the source file being compiled has not
   said to inhibit this.  There should be no need for you
   to alter these lines.  */

#ifdef SHORTNAMES
#ifndef NO_SHORTNAMES
#include "../shortnames/remap.h"
#endif /* not NO_SHORTNAMES */
#endif /* SHORTNAMES */

/* Define HAVE_X_WINDOWS if you want to use the X window system.  */
#define HAVE_X_WINDOWS

#ifdef HAVE_X_WINDOWS
#ifndef MULTI_SCREEN
#define MULTI_SCREEN
#endif
#endif

/* Define `subprocesses' if you want to have code for asynchronous
   subprocesses (as used in M-x compile and M-x shell).  These do not
   work for some USG systems yet; for the ones where they work, the
   s-*.h file defines this flag.  */

#ifndef VMS
#ifndef USG
#define subprocesses
#endif
#endif

/* Define USER_FULL_NAME to return a string
   that is the user's full name.
   It can assume that the variable `pw'
   points to the password file entry for this user.

   At some sites, the pw_gecos field contains
   the user's full name.  If neither this nor any other
   field contains the right thing, use pw_name,
   giving the user's login name, since that is better than nothing.  */

#define USER_FULL_NAME pw->pw_gecos

/* Define AMPERSAND_FULL_NAME if you use the convention
   that & in the full name stands for the login id.  */

/* #define AMPERSAND_FULL_NAME */

/* Define HIGHPRI as a negative number if you want Emacs to run at a higher
   than normal priority.  For this to take effect, you must install it as
   setuid root. */

/* #define HIGHPRI */

/* support `getenv' and `setenv' in Emacs (unix only) */
#define MAINTAIN_ENVIRONMENT

/* Define LISP_FLOAT_TYPE if you want emacs to support floating-point
   numbers. */

#define LISP_FLOAT_TYPE

/* Define GNU_MALLOC if you want to use the *new* GNU memory allocator.
   If you have trouble with _malloc being multiply-defined, or if you're
   on a NeXT (or possibly MACH in general) comment out the next four lines.
 */

/*
#ifdef SYSTEM_MALLOC
#undef SYSTEM_MALLOC
#endif
#define GNU_MALLOC
*/

/* Define NEED_STRDUP if your system doesn't have a strdup() function.
   Define NEED_REALPATH if your system does not include a realpath()
function.
   If you system doesn't have the fmod() function, then you need to define
   either HAVE_DREM or HAVE_REMAINDER, as appropriate.

   These flags really should be in the appropriate s- file, so if you need 
   to do this, let us know and we'll put them there in the next release.
 */
#define NEED_STRDUP
#define NEED_REALPATH
/* #define HAVE_DREM */
/* #define HAVE_REMAINDER */


/* Define REL_ALLOC if you want to use the relocating allocator for
   buffer space.  (There are too many problems with this right now.) */

/* #define REL_ALLOC */

/* Non-Lucid sites can't compile with Energize support yet */
/* #define ENERGIZE */

/* You should define LWLIB_HAS_EXTENSIONS if and only if the lwlib
Imakefile
   had INCLUDE_EXTENSIONS defined.  This makes it possible to link
arbitrary
   other widgets into the Emacs frame; Energize requires this.  The only
   reason you would not want this defined is if you couldn't get lwlib to
   compile this way because you don't have read-access to the X source
tree.
   See also LWLIB_USES_MOTIF and LWLIB_USES_OLIT, below.
 */
#ifdef ENERGIZE
#define LWLIB_HAS_EXTENSIONS
#endif

/* Sun SparStations and SGI machines have support for playing different
sound
   files as beeps.  If you are on a SparcStation but do not have the sound 
   option installed for some reason (It's usually in /usr/demo/SOUND/) then
   undefine USE_SOUND.
 */
/* #undef USE_SOUND */


/* Compile in support for running emacs directly from temacs (useful for
   debugging emacs) */
#define RUNNABLE_TEMACS


#ifdef THIS_IS_YMAKEFILE

/* If you have defined USE_MOTIF in the lwlib Imakefile, then you must
define
   LWLIB_USES_MOTIF here.  Similarly, if you have defined USE_OLIT in the
   lwlib Imakefile, you must define LWLIB_USES_OLIT here.  This is because
   emacs must be linked with the Motif or OpenLook libraries if lwlib has
   been configured to use them.  (Note: you cannot define both.)
 */
/* #define LWLIB_USES_MOTIF */
/* #define LWLIB_USES_OLIT */


/* Define LD_SWITCH_SITE to contain any special flags your loader may
   need.  For instance, if you've defined HAVE_X_WINDOWS above and your
   X libraries aren't in a place that your loader can find on its own,
   you might want to add "-L/..." or something similar.  */

/* #define LD_SWITCH_SITE -L/x11r4/usr.`arch`/lib */


/* Define C_SWITCH_SITE to contain any special flags your compiler may
   need.  For instance, if you've defined HAVE_X_WINDOWS above and your
   X include files aren't in a place that your compiler can find on its
   own, you might want to add "-I/..." or something similar.  */

/* #define C_SWITCH_SITE -I/cadillacgnu/gcc-include -I/x11r4/usr/include */

#define C_SWITCH_SITE -I/usr/include/mit

#ifdef USE_GCC
/* Depending on how GCC is installed, you may need to add the gcc library
   here.  This could also go in LD_SWITCH_SITE.  If you get errors about
   __fixunsdfsi or__main being undefined, you probably need to do this. */

/* #define LIB_GCC /cadillacgnu/lib/sun4/gcc-gnulib */

#endif /* USE_GCC */


/* If you are using SunOS 4.1.1 and X11r5, then you need this patch.
   There is a stupid bug in the SunOS libc.a: two functions which X11r5
   uses, mbstowcs() and wcstombs(), are unusable when programs are
   statically linked (as Emacs must be) because the static version of
   libc.a contains the *dynamic* versions of these functions.  These
   functions don't seem to be called when Emacs is running, so it's 
   enough to define stubs for them.

   This appears to be fixed in SunOS 4.1.2.

   Also, SunOS 4.1.1 contains buggy versions of strcmp and strcpy that
   sometimes reference memory past the end of the string, which can segv.
 */
#ifdef sparc
#define OBJECTS_SYSTEM sunOS-fix.o strcmp.o strcpy.o
#endif


#endif /* THIS_IS_YMAKEFILE */

____________________________________________________________________________
if you really want to know...

Frank Siebenlist                             Email: franks@imt.ntu.ac.sg
Institute of Manufacturing Technology (IMT)    Tel: (65) 799-1336
Nanyang Technological University (NTU)         Fax: (65) 791-2927
Nanyang Avenue
Singapore 2263



x-gateway: rodan.UU.NET from help-lucid-emacs to alt.lucid-emacs.help; Thu, 10 Sep 1992 20:52:00 EDT
Subject: New Sun keyboards
Reply-To: daveg@synaptics.com
Date: Thu, 10 Sep 1992 17:08:32 -0700
From: daveg@thymus.synaptics.com (Dave Gillespie)
Newsgroups: alt.lucid-emacs.help