[comp.emacs] memacs3.9

windley@iris (Phil Windley) (11/21/87)

When I compile microemacs 3.9 under Unix (HP-UX) I get a list of
undefined symbols out of it that I don't recognize.  I thought for a
minute that they occured in files specific to non-unix systems and I
could solve the problem by not including them in the make (is there a
good reason why they are, by the way?).  Unfortunately, my hopes were
dashed when I noticed that sysint, for instance, is called from
main.c.  What to do?  Has anyone made microemacs under Unix?  I would
really like to get an emacs on this machine, but I don't have room for
GNU.  Here is the snapshot of the problem:

| # make
| make 
|         cc -O ansi.o basic.o bind.o buffer.o crypt.o dg10.o  display.o eval.o
| exec.o file.o fileio.o  hp110.o hp150.o ibmpc.o input.o isearch.o line.o  
| lock.o main.o random.o region.o search.o spawn.o  st520.o tcap.o termio.o 
| tipc.o vmsvt.o vt52.o  window.o word.o z309.o -ltermcap -lc -o emacs
| ld: Undefined external -
|         _aputc
|         _inportb
|         _sysint
|         _outportb
|         _bdos
|         _movmem
|         _segread
| ld: output file still contains undefined symbols
| ld: (Warning) did not generate an output file
| *** Error code 1


Phil Windley
Robotics Research Lab
University of California, Davis

hartzell@boulder.Colorado.EDU (George Hartzell) (11/21/87)

In article <538@ucdavis.ucdavis.edu> windley@iris.ucdavis.edu (Phil Windley) writes:
>| ld: Undefined external -
>|         _aputc
>|         _inportb
>|         _sysint
>|         _outportb
>|         _bdos
>|         _movmem
>|         _segread
>| ld: (Warning) did not generate an output file

These look an awfull lot like IBM things.  You should check the .h files
(don't remember which one at the moment) for the one in which you define
the system that you are using and make sure that you have IBM turned off.
g.

George Hartzell			                 (303) 492-4535
MCD Biology, University of Colorado-Boulder, Boulder, CO 80309
hartzell@Boulder.Colorado.EDU  ..!{hao,nbires}!boulder!hartzell

ljz@fxgrp.UUCP (11/22/87)

In article <538@ucdavis.ucdavis.edu> windley@iris.ucdavis.edu (Phil Windley) writes:
>When I compile microemacs 3.9 under Unix (HP-UX) I get a list of
>undefined symbols out of it that I don't recognize.  ...
> ...
>| ld: Undefined external -
>|         _aputc
>|         _inportb
>|         _sysint
>|         _outportb
>|         _bdos
>|         _movmem
>|         _segread
> ...

Look at the estruct.h file.  In it are a bunch of #define symbols,
some of which need to be reset when compiling under unix.  The
default is to set up uEmacs for an MSDOS machine, so you will have
to at least set the MSDOS symbol to 0, and you might have to change
some of the other #define values.  It should be fairly easy to figure
out which #define's need to be set in which way, as the estruct.h file
is documented relatively well.



---------------------------------------------------------------------------
Lloyd Zusman
Master Byte Software
Los Gatos, California                 UUCP:      ...!ames!fxgrp!ljz
"We take things well in hand."        INTERNET:  fxgrp!ljz@ames.arpa
---------------------------------------------------------------------------

tmoody@sjuvax.UUCP (T. Moody) (11/23/87)

In article <538@ucdavis.ucdavis.edu> windley@iris.ucdavis.edu (Phil Windley) writes:
>When I compile microemacs 3.9 under Unix (HP-UX) I get a list of
>undefined symbols out of it that I don't recognize.[...]
>Here is the snapshot of the problem:
>[more deleted stuff]
>| ld: Undefined external -
>|         _aputc
>|         _inportb
>|         _sysint
>|         _outportb
>|         _bdos
>|         _movmem
>|         _segread
>| ld: output file still contains undefined symbols
>| ld: (Warning) did not generate an output file
>| *** Error code 1

Thank you, Phil, for posting this.  This is pretty much the same result
that I got under BSD 4.3 but, since I am not a C programmer (or any kind
of a programmer) but a -- how you say -- end user, I assumed that I was
doing something seriously wrong.

The strange thing (to me) is that as far as I can tell, these things
*are* defined.  At least, they don't look different from the other
definitions in the code that do not appear to be causing problems.  A
good number of these "undefined" items are linked to MSDOS-specific
parts of estruct.h.  I tried masking things out, but succeeded only in
making a big mess.

Under BSD 4.3, an output file was created, but it would not execute.
Perhaps others have had the same troubles.

[Note: medoc4 also did not survive the trip to this site.]

-- 
Todd Moody * {allegra|astrovax|bpa|burdvax}!sjuvax!tmoody * SJU Phil. Dept.
    "The wind is not moving.  The flag is not moving.  Mind is moving."

nwd@j.cc.purdue.edu (Daniel Lawrence) (11/23/87)

In article <538@ucdavis.ucdavis.edu> windley@iris.ucdavis.edu (Phil Windley) writes:
>When I compile microemacs 3.9 under Unix (HP-UX) I get a list of
>undefined symbols out of it that I don't recognize.

>| ld: Undefined external -
>|         _aputc         _inportb         _sysint         _outportb
>|         _bdos          _movmem          _segread

A lot of people are trying to compile this cold, without first modifying
the configuration flags in ESTRUCT.H which specify what
system/compiler/features to use. The above undefined symbols are library
routines in the MSDOS version of the AZTEC compiler (which is what
ESTRUCT.H was set to when I archived it). Please edit ESTRUCT.H before
you try to compile MicroEMACS 3.9e.

			Daniel Lawrence		(317) 742-5153
			UUCP:	{ihnp4!pur-ee!}j.cc.purdue.edu!nwd
			ARPA:	nwd@j.cc.purdue.edu
			FIDO:	201/2 The Programmer's Room (317) 742-5533

ljz@fxgrp.UUCP (Lloyd Zusman, Master Byte Software) (11/24/87)

In article <999@sjuvax.UUCP> tmoody@sjuvax.UUCP (T. Moody) writes:
>In article <538@ucdavis.ucdavis.edu> windley@iris.ucdavis.edu (Phil Windley) writes:
> ...
>>| ld: Undefined external -
>>|         _aputc
>>|         _inportb
>>|         _sysint
>>|         _outportb
>>|         _bdos
>>|         _movmem
>>|         _segread
>>| ld: output file still contains undefined symbols
>>| ld: (Warning) did not generate an output file
>>| *** Error code 1
>
> ... A
>good number of these "undefined" items are linked to MSDOS-specific
>parts of estruct.h.  I tried masking things out, but succeeded only in
>making a big mess.
>
>Under BSD 4.3, an output file was created, but it would not execute.
> ...

I got it to build just fine under BSD 4.3 and on a Sun.  Re-extract the
files from the shar's ... this will make sure you are starting with a
clean slate.  Then, make sure your "estruct.h" file looks like the
following fragment.  Copy or rename the "makefile.unx" file to
"Makefile" or "makefile", get rid of all the *.o files, and then type
'make'.  It should work just fine.

/** fragment of estruct.h starts here **/

/*	Machine/OS definitions			*/

#define AMIGA   0                       /* AmigaDOS			*/
#define ST520   0                       /* ST520, TOS                   */
#define MSDOS   0                       /* MS-DOS                       */
#define V7      0                       /* V7 UNIX or Coherent or BSD4.2*/
#define	BSD	1			/* UNIX BSD 4.2	and ULTRIX	*/
#define	USG	0			/* UNIX system V		*/
#define VMS     0                       /* VAX/VMS                      */
#define CPM     0                       /* CP/M-86                      */
#define	FINDER	0			/* Macintosh OS			*/

/*	Compiler definitions			*/
#define	UNIX	1	/* a random UNIX compiler */
#define MWC	0	/* Marc Williams C */
#define	LATTICE	0	/* Lattice 2.14 thruough 3.0 compilers */
#define	AZTEC	0	/* Aztec C 3.20e */
#define	MSC	0	/* MicroSoft C compile version 3 & 4 */
#define	TURBO	0	/* Turbo C/MSDOS */

/*	Debugging options	*/
#define	RAMSIZE	0	/* dynamic RAM memory usage tracking */
#define	RAMSHOW	0	/* auto dynamic RAM reporting */

/*   Special keyboard definitions            */

#define WANGPC	0		/* WangPC - mostly escape sequences     */
#define VT100   0               /* Handle VT100 style keypad.   */

/*	Terminal Output definitions		*/

#define ANSI    0			/* ANSI escape sequences	*/
#define	HP150	0			/* HP150 screen driver		*/
#define	HP110	0			/* HP110 screen driver		*/
#define	VMSVT	0			/* various VMS terminal entries	*/
#define VT52    0                       /* VT52 terminal (Zenith).      */
#define RAINBOW 0                       /* Use Rainbow fast video.      */
#define TERMCAP 1                       /* Use TERMCAP                  */
#define	IBMPC	0			/* IBM-PC CGA/MONO/EGA driver	*/
#define	DG10	0			/* Data General system/10	*/
#define	TIPC	0			/* TI Profesional PC driver	*/
#define	Z309	0			/* Zenith 100 PC family	driver	*/
#define	MAC	0			/* Macintosh			*/
#define	ATARI	0			/* Atari 520/1040ST screen	*/

/*	Configuration options	*/

#define CVMVAS  1	/* arguments to page forward/back in pages	*/
#define	CLRMSG	0	/* space clears the message line with no insert	*/
#define	CFENCE	1	/* fench matching in CMODE			*/
#define	TYPEAH	1	/* type ahead causes update to be skipped	*/
#define DEBUGM	1	/* $debug triggers macro debugging		*/
#define	VISMAC	0	/* update display during keyboard macros	*/
#define	CTRLZ	0	/* add a ^Z at end of files under MSDOS only	*/
#define ADDCR	0	/* ajout d'un CR en fin de chaque ligne (ST520) */
#define	NBRACE	1	/* new style brace matching command		*/

#define	REVSTA	1	/* Status line appears in reverse video		*/
#define	COLOR	0	/* color commands and windows			*/

#define	FILOCK	0	/* file locking under unix BSD 4.2		*/
#define	ISRCH	0	/* Incremental searches like ITS EMACS		*/
#define	WORDPRO	1	/* Advanced word processing features		*/
#define	FLABEL	0	/* function key label code [HP150]		*/
#define	APROP	1	/* Add code for Apropos command			*/
#define	CRYPT	1	/* file encryption enabled?			*/
#define MAGIC	1	/* include regular expression matching?		*/
#define	AEDIT	1	/* advanced editing options: en/detabbing	*/
#define	PROC	1	/* named procedures				*/
#define	CLEAN	0	/* de-alloc memory on exit			*/
#define	CALLED	0	/* is emacs a called subroutine? or stand alone */

#define ASCII	1	/* always using ASCII char sequences for now	*/
#define EBCDIC	0	/* later IBM mainfraim versions will use EBCDIC	*/

/** fragment of estruct.h ends here **/

Good luck.


---------------------------------------------------------------------------
Lloyd Zusman
Master Byte Software
Los Gatos, California                 UUCP:      ...!ames!fxgrp!ljz
"We take things well in hand."        INTERNET:  fxgrp!ljz@ames.arpa
---------------------------------------------------------------------------
-- 
Lloyd Zusman, Master Byte Software, Los Gatos, California
"We take things well in hand."
...!ames!fxgrp!ljz

exodus@uop.EDU (G. Onufer) (11/26/87)

I compiled me3.9 on our Sun systems here.  We use Televideo 905's for the
most part and there seems to be a small problem with them.  me3.9 starts
repainting the screen at column 1 (as opposed to column 0) and when you
start entering text, it is double spaced (ie: type "aaa" get "a a a").

It works fine when the Televideo is emulating something else (I cannot remember
which terminal I used...the emulation is internal to the terminal).  And it
works fine on any other terminals in the lab.  

Anybody have a similar problem?  

Thanks,
Greg


Greg Onufer   		GEnie: G.ONUFER		University of the Pacific
UUCP:						**POSTMASTER @ UOP**
 {ucbvax, lll-crg}!ucdavis!uop.edu
				   !{exodus, exodusr, postmaster, root}
{ptsfa!cogent, cepu!retix}!uop.edu   [Any of the above names will work]
AT&T: 209-944-7481	USMAIL: #300 Jackson, UoP, Stockton CA, 95211

george@rebel.UUCP (George M. Sipe) (11/27/87)

In article <791@uop.EDU> exodus@uop.EDU (G. Onufer) writes:
>I compiled me3.9 on our Sun systems here.  We use Televideo 905's for the
>most part and there seems to be a small problem with them.  me3.9 starts
>repainting the screen at column 1 (as opposed to column 0) and when you
>start entering text, it is double spaced (ie: type "aaa" get "a a a").
>It works fine when the Televideo is emulating something else (I cannot remember
>which terminal I used...the emulation is internal to the terminal).  And it
>works fine on any other terminals in the lab.  
>Anybody have a similar problem?  

It sure does.  This is the standout problem which has always been in
MicroEMACS.  Terminals which require embedded attributes are not
supported.

I have posted patches for 3.8l, 3.8i, and 3.9e which fully correct this
problem.  The 3.9e patches were just posted to comp.emacs and
comp.sources.bugs.  Daniel Lawrence, author of MicroEMACS has promised
to include them in future releases.  I will NOT post the patches for
any future versions (three times is more than enough).
-- 
George M. Sipe,		Phone: (404) 662-1533
Tolerant Systems, 6961 Peachtree Industrial, Norcross, GA  30071
UUCP: ...!{decvax,hplabs,ihnp4,linus,rutgers,seismo}!gatech!rebel!george

schwartz@gondor.psu.edu (Scott E. Schwartz) (11/30/87)

In article <791@uop.EDU> exodus@uop.EDU (G. Onufer) writes:
>
>I compiled me3.9 on our Sun systems here.  We use Televideo 905's for the
>most part and there seems to be a small problem with them.  me3.9 starts
>repainting the screen at column 1 (as opposed to column 0) and when you
>start entering text, it is double spaced (ie: type "aaa" get "a a a").

I have not seed 3.9 yet, but on all previous versions of microemacs
(and lots of other programs, for that matter) the author uses the termcap
entries "so" and "se" to highlight characters, but chooses to ignore
"sg" which tells how much space the magic cookies take up.  Uemacs is printing
so and se and not realizing that they screw up the output on your terminal.
Solutions: you can patch uemacs to never use so/se (easy), you can fix uemacs
to do it right (someone posted patches for 3.7 last year),
or you can alter your termcap entry to not define them.  In any event,
someone should let the author know this is going wrong.


-- Scott Schwartz            schwartz@gondor.psu.edu