delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/07/15/14:36:42

From: j DOT aldrich6 AT genie DOT com
Message-Id: <199607140814.AA207812066@relay1.geis.com>
Date: Sun, 14 Jul 96 08:07:00 UTC 0000
To: djgpp AT delorie DOT com
Mime-Version: 1.0
Subject: Error compiling Emacs 19.31

I have encountered an interesting problem when compiling Emacs 19.31
with DJGPP.  The compiler dies with a weird error during the final link
stage of the program, 'temacs':

gcc.exe: installation problem, cannot exec `c:/djgpp/bin\ld.exe': Not enough
memory (ENOMEM)

and my system crashes with the infamous "Cannot start COMMAND,
exiting" error.  Most interesting of all, this crash only occurs when I have
EMM386 loaded, in either DOS or a Windows DOS box, but not when
I have only HIMEM.SYS loaded, without EMM386.  I have more than
enough RAM (8 MB) and swap space (I tried with 5 MB swap, 12 MB
swap, and 27 MB swap, with no difference).  I also have the strange
feeling that this problem or something similar has occurred to someone
before on the mailing list...

Anyway, here's the exact error I get (note that I ran this after compiling
every other part of Emacs successfully):


---- RESULTS OF MAKE ALL ----
(occurs under EMM386 & Win 3.1 DOS box, but not in raw boot w/HIMEM only)

C:\EMACS-19.31>make all
cd lib-src
c:/djgpp/bin/make.exe
make.exe[1]: Entering directory `c:/emacs-19.31/lib-src'
make.exe[1]: Nothing to be done for `all'.
make.exe[1]: Leaving directory `c:/emacs-19.31/lib-src'
cd ..
cd src
c:/djgpp/bin/make.exe
make.exe[1]: Entering directory `c:/emacs-19.31/src'
gcc          -o temacs  dispnew.o frame.o scroll.o xdisp.o xmenu.o window.o
cm.o term.o     emacs.o keyboard.o macros.o keymap.o sysdep.o   buffer.o
filelock.o insdel.o marker.o intervals.o textprop.o    minibuf.o fileio.o
dired.o filemode.o   cmds.o casetab.o casefiddle.o indent.o search.o regex.o
undo.o  alloc.o data.o doc.o editfns.o callint.o        eval.o floatfns.o fns.o
print.o lread.o         abbrev.o syntax.o unexec.o  mocklisp.o bytecode.o
process.o callproc.o    region-cache.o  doprnt.o strftime.o   getloadavg.o
dosfns.o msdos.o xfaces.o  termcap.o tparam.o lastfile.o gmalloc.o ralloc.o
vm-limit.o                      -lg   -lm
gcc.exe: installation problem, cannot exec `c:/djgpp/bin\ld.exe': Not enough
memory (ENOMEM)
make.exe[1]: *** [temacs] Error 1
make.exe[1]: Leaving directory `c:/emacs-19.31/src'
make.exe: *** [src] Error 2

Memory allocation error
Cannot start COMMAND, exiting


Here's my system configuration.  Yes, I've got a long, complex
config and autoexec; I got the errors when using the "dos_config"
setup, and was able to compile successfully when using the
"base_noCD" setup.  I don't think for this problem that the output
of 'gcc -v' is necessary, but I can provide it if it will help.


---- GO32 OUTPUT ----

go32/v2 version 2.0 built Jan 23 1996 22:03:02
Usage: go32 coff-image [args]
Rename this to go32.exe only if you need a go32 that can run v2 binaries as
 well as v1 binaries (old makefiles).  Put ahead of the old go32 in your PATH.
DPMI memory available: 5572 Kb
DPMI swap space available: 11064 Kb


---- CONFIG.SYS ----

switches= /f
; MS-DOS Startup Menu
[menu]
menuitem        base_config,    Base configuration only (for max free memory)
menuitem        win_config,     Normal configuration - start in Windows
menuitem        dos_config,     Normal configuration - start in MS-DOS
menuitem        base_win,       Minimum Windows configuration
submenu         game_config,    Non-standard game configurations
menudefault=dos_config,10

[game_config]
menuitem        base_CD,        Load CD-ROM drivers only
menuitem        sd_CD,          Load remapped CD-ROM and SMARTDRV (most games)
menuitem        emm_CD,         Load CD-ROM, EMM386, and SMARTDRV
menuitem        base_noCD,      Do not load any drivers
menuitem        sd_noCD,        Load SMARTDRV only (most non-CD games)
menuitem        emm_noCD,       Load EMM386 & SMARTDRV
submenu         spec_config,    Individual game configurations
submenu         menu,           Return to Main menu

[spec_config]
menuitem        d2_start,       Run Descent II
menuitem        civ2_start,     Run Civilization II
menuitem        duke3d_start,   Run Duke Nukem 3D
submenu         game_config,    Return to Game Config menu

[auto]
SHELL=C:\DOS\COMMAND.COM /P/E:1536
DEVICE=C:\DOS\HIMEM.SYS
FILES=30
BUFFERS=30
STACKS=0,0
FCBS=1

[base_config]
include=auto
DOS=HIGH
DEVICE=C:\WINDOWS\MOUSE.SYS

[win_config]
include=auto
DEVICE=C:\DOS\EMM386.EXE FRAME=E000 RAM MIN=0 D=64 I=B000-B7FF I=E000-EFFF
DOS=HIGH,UMB
DEVICE=C:\PLUGPLAY\DRIVERS\DOS\DWCFGMG.SYS
DEVICEHIGH=C:\WINDOWS\MOUSE.SYS
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS
DEVICEHIGH=C:\SOUND144\DRIVERS\CDMKE.SYS /P:340 /D:MSCD0001
DEVICEHIGH=C:\DOS\NANSY.SYS /X

[dos_config]
include=win_config

[base_win]
include=auto
DEVICE=C:\DOS\EMM386.EXE FRAME=E000 RAM MIN=0 D=64 I=B000-B7FF I=E000-EFFF
DOS=HIGH,UMB
DEVICE=C:\PLUGPLAY\DRIVERS\DOS\DWCFGMG.SYS
DEVICEHIGH=C:\WINDOWS\MOUSE.SYS
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS
DEVICEHIGH=C:\SOUND144\DRIVERS\CDMKE.SYS /P:340 /D:MSCD0001

[base_CD]
include=base_config
DEVICE=C:\SOUND144\DRIVERS\CDMKE.SYS /P:340 /D:MSCD0001

[sd_CD]
include=base_CD

[emm_CD]
include=auto
DEVICE=C:\DOS\EMM386.EXE FRAME=E000 RAM MIN=0 D=64 I=B000-B7FF I=E000-EFFF
DOS=HIGH,UMB
DEVICEHIGH=C:\SOUND144\DRIVERS\CDMKE.SYS /P:340 /D:MSCD0001
DEVICEHIGH=C:\WINDOWS\MOUSE.SYS

[base_noCD]
include=base_config

[sd_noCD]
include=base_noCD

[emm_noCD]
include=auto
DEVICE=C:\DOS\EMM386.EXE FRAME=E000 RAM MIN=0 D=64 I=B000-B7FF I=E000-EFFF
DOS=HIGH,UMB
DEVICEHIGH=C:\WINDOWS\MOUSE.SYS

[d2_start]
include=sd_CD

[civ2_start]
include=base_win

[duke3d_start]
include=sd_CD


---- AUTOEXEC.BAT ----

@ECHO OFF

REM Automatic stuff
PATH
.;C:\;C:\UTIL;C:\DJGPP\BIN;C:\DOS;C:\DOS\PWRTOOLS;C:\WINDOWS;C:\SOUND144\UTILITY
;C:\PBTOOLS;C:\EMACS-19.31\BIN
PROMPT $P$G
SET DIRCMD=/O/P
SET TEMP=C:\PBTOOLS\WINTEMP
SET WINPMT=[WIN] $P$G
SET BLASTER=A220 I5 D1 T4
SET GALAXY=A220 I5 D1 K10 P530 T6
SET SOUND=C:\SOUND144
SET GAMES=C:\GAMES
SET POWERSET=ADV:REG
SET ROM2=C:\ROM2
SET ROM_LOG=ROM2.LOG

REM Put original WIN.INI back
if exist c:\windows\_winini.001 update c:/windows/_winini.001
c:/windows/win.ini

REM DJGPP environment settings
CALL C:\DJGPP\BIN\SETDJGPP C:\DJGPP C:/DJGPP
SET TMPDIR=%TEMP%
SET GO32TMP=%TEMP%
SET GO32=ansi

REM Sound settings
C:\SOUND144\UTILITY\SETMODE /SBP
C:\SOUND144\UTILITY\MIC3D /3D:ON
C:\SOUND144\UTILITY\VOLSET /S:S

REM Which configuration did we pick?
GOTO %CONFIG%

REM This is basic setup for full config
:win_config
:dos_config
C:\WINDOWS\AD_WRAP.COM
C:\PBTOOLS\AZCAL.EXE
LH C:\DOS\MSCDEX.EXE /D:MSCD0001 /M:20
C:\DOS\SMARTDRV.EXE 1024 512 /N/F
LH C:\PBTOOLS\CDREMAP.EXE
C:\DOS\DOSKEY /INSERT
CALL C:\UTIL\MACINIT
LH C:\WINDOWS\AD-DOS.COM /T10
LH C:\DOS\VSAFE.COM /1+ /2- /3- /4- /5+ /6+ /7+ /8- /Av
rem LH C:\DOS\SHARE.EXE
SET WINPMT=$E[1;35;44m[WIN]$E[1;34;40m $P$G

REM Figure out if we wanted Windows or DOS
IF %CONFIG%==win_config GOTO win_start
IF %CONFIG%==dos_config GOTO dos_start

REM This is an alternate Windows setup for max free memory.
:base_win
:civ2_start
LH C:\DOS\MSCDEX.EXE /D:MSCD0001 /M:20
C:\DOS\SMARTDRV.EXE 512 256 /N/F
LH C:\PBTOOLS\CDREMAP.EXE
if exist c:\windows\_winini.002 update c:/windows/_winini.002
c:/windows/win.ini
IF %CONFIG%==civ2_start CALL C:\UTIL\GAMES.BAT civ2
IF %CONFIG%==civ2_start GOTO END
CALL WIN
GOTO END

REM Start in Windows
:win_start
CALL WIN
GOTO PROMPT

REM Start in MS-DOS
:dos_start
CLS
REM This causes the date and time to be displayed once on startup.
PROMPT $E[1;34;40mSystem date: $D$_System time: $T
@ECHO ON

@ECHO OFF
VER
GOTO PROMPT

:PROMPT
PROMPT $E[1;34;40m$P$G
GOTO END

REM Alternate configurations
:sd_noCD
:emm_noCD
:duke3d_start
C:\DOS\SMARTDRV.EXE 256
:base_config
:base_noCD
IF %CONFIG%==duke3d_start CALL C:\UTIL\GAMES.BAT duke3d
GOTO END

:base_CD
:emm_CD
:sd_CD
:d2_start
LH C:\DOS\MSCDEX.EXE /D:MSCD0001 /M:20
IF %CONFIG%==base_CD GOTO END
C:\DOS\SMARTDRV.EXE 256
C:\PBTOOLS\CDREMAP.EXE
IF %CONFIG%==d2_start CALL C:\UTIL\GAMES.BAT descent2
GOTO END

REM We're outta here
:END


---- ENVIRONMENT ----

CONFIG=dos_config
COMSPEC=C:\COMMAND.COM
PATH=.;C:\;C:\UTIL;C:\DJGPP\BIN;C:\DOS;C:\DOS\PWRTOOLS;C:\WINDOWS;C:\SOUND144\UT
ILITY;C:\PBTOOLS;C:\EMACS-19.31\BIN
DIRCMD=/O/P
TEMP=C:\PBTOOLS\WINTEMP
BLASTER=A220 I5 D1 T4
GALAXY=A220 I5 D1 K10 P530 T6
SOUND=C:\SOUND144
GAMES=C:\GAMES
POWERSET=ADV:REG
ROM2=C:\ROM2
ROM_LOG=ROM2.LOG
DJGPP=C:/DJGPP/djgpp.env
TMPDIR=C:\PBTOOLS\WINTEMP
GO32TMP=C:\PBTOOLS\WINTEMP
GO32=ansi
WINPMT=$E[1;35;44m[WIN]$E[1;34;40m $P$G
PROMPT=$E[1;34;40m$P$G

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019