boneill@hawk.ulowell.edu (SoftXc Coordinator) (02/01/89)
I had a problem compiling 1.32 on an Encore Multimax. I had 1.31 running
fine. A patch was made to tm-ns32k.h which seems to kill it when it creates
gnulib in the beginning. Here is the result of the make:
mkdir libtemp
mkdir: libtemp: File exists
*** Error code 1 (ignored)
cd libtemp; \
rm -f gnulib; \
for name in _eprintf _builtin_new _builtin_New _builtin_del _umulsi3 _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 _lshrsi3 _lshlsi3 _ashrsi3 _ashlsi3 _cmpdi2 _ucmpdi2 _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 _cmpdf2 _fixunsdfsi _fixunsdfdi _fixdfsi _fixdfdi _floatsidf _floatdidf _truncdfsf2 _extendsfdf2 _addsf3 _negsf2 _subsf3 _cmpsf2 _mulsf3 _divsf3 _varargs; \
do \
echo ${name}; \
rm -f ${name}.c; \
cp ../gnulib.c ${name}.c; \
cc -O -I.. -c -DL${name} ${name}.c; \
ar qc gnulib ${name}.o; \
done
_eprintf
"../tm-ns32k.h", line 475: No name given for declaration
"../tm-ns32k.h", line 475: expected: ';' got: else
"../tm-ns32k.h", line 475: Illegal character
"../tm-ns32k.h", line 476: Illegal character
"../tm-ns32k.h", line 477: Undefined symbol: used_fregs_buf
"../tm-ns32k.h", line 477: Type mismatch
"../tm-ns32k.h", line 477: Illegal initial value
"../tm-ns32k.h", line 477: Illegal character
"../tm-ns32k.h", line 478: No name given for declaration
"../tm-ns32k.h", line 478: expected: ';' got: while
"../tm-ns32k.h", line 478: Illegal character
"../tm-ns32k.h", line 479: Illegal character
"../tm-ns32k.h", line 480: Illegal character
"../tm-ns32k.h", line 481: Illegal character
"../tm-ns32k.h", line 482: No name given for declaration
"../tm-ns32k.h", line 482: expected: ';' got: else
"../tm-ns32k.h", line 482: Illegal character
"../tm-ns32k.h", line 483: Illegal character
"../tm-ns32k.h", line 484: Illegal character
"../tm-ns32k.h", line 485: warning: old-fashioned initialization
"../tm-ns32k.h", line 485: Illegal variable or expression
"../tm-ns32k.h", line 485: Type mismatch
"../tm-ns32k.h", line 485: Illegal initial value
"../tm-ns32k.h", line 485: expected: ';' got: constant
"../tm-ns32k.h", line 485: Illegal character
"../tm-ns32k.h", line 486: No name given for declaration
"../tm-ns32k.h", line 486: expected: ';' got: '}'
"../tm-ns32k.h", line 486: Illegal character
"../tm-ns32k.h", line 487: Illegal character
"_eprintf.c", line 25: No name given for declaration
"_eprintf.c", line 25: expected: ';' got: '}'
*** Error code 1
Stop.
I think that most of the errors are linked to the first. Here is the
relevant section of the patch, with lines 475-476 preceded with '*' to mark
them, where the first few errors occur. If anyone can think of a cause to
the problem, or a fix, please let me know...
***************
*** 447,472 ****
#define FUNCTION_PROLOGUE(FILE, SIZE) \
{ register int regno; \
! register int nregs; \
! char used_regs_buf[32], *bufp = used_regs_buf; \
int used_fregs_buf[8], *fbufp = used_fregs_buf; \
extern char call_used_regs[]; \
MAIN_FUNCTION_PROLOGUE; \
! for (regno = 0, nregs = 0; regno < 8; regno++) \
if (regs_ever_live[regno] && !call_used_regs[regno]) { \
! nregs += 1; \
! *bufp++ = 'r'; *bufp++ = regno+'0'; *bufp++ = ','; \
} \
for (; regno < 16; regno++) \
if (regs_ever_live[regno] && !call_used_regs[regno]) { \
! *fbufp++ = regno; \
} \
- if (bufp > used_regs_buf) --bufp; \
- *bufp = '\0'; \
- if (frame_pointer_needed) \
- fprintf (FILE, "\tenter [%s],%d\n", used_regs_buf,SIZE); \
- else if (nregs == 1) \
- fprintf (FILE, "\tmovd %s,tos\n", used_regs_buf); \
- else if (nregs) fprintf (FILE, "\tsave [%s]\n", used_regs_buf); \
*fbufp = -1; \
fbufp = used_fregs_buf; \
while (*fbufp >= 0) \
--- 447,478 ----
#define FUNCTION_PROLOGUE(FILE, SIZE) \
{ register int regno; \
! int used_regs_buf[8], *bufp = used_regs_buf; \
int used_fregs_buf[8], *fbufp = used_fregs_buf; \
extern char call_used_regs[]; \
MAIN_FUNCTION_PROLOGUE; \
! for (regno = 0; regno < 8; regno++) \
if (regs_ever_live[regno] && !call_used_regs[regno]) { \
! *bufp++ = regno; \
} \
+ *bufp = -1; \
for (; regno < 16; regno++) \
if (regs_ever_live[regno] && !call_used_regs[regno]) { \
! *fbufp++ = regno; \
} \
*fbufp = -1; \
+ bufp = used_regs_buf; \
+ if (frame_pointer_needed) \
+ { \
+ fprintf (FILE, "\tenter ["); \
+ while (*bufp >= 0) \
+ { \
+ fprintf (FILE, "r%d", *bufp++); \
+ if (*bufp >= 0) \
+ fputc (',', FILE); \
+ } \
+ fprintf (FILE, "],%d\n", SIZE); \
+ }
*+ else while (*bufp >= 0) \
*+ fprintf (FILE, "\tmovd r%d,tos\n", *bufp++); \
fbufp = used_fregs_buf; \
while (*fbufp >= 0) \
==============================================================================
Brian O'Neill, MS-DOS Software Exchange Coordinator
ArpaNet: boneill@hawk.ulowell.edu
UUCP: {(backbones),harvard,mit-eddie,et. al.}!ulowell!hawk.ulowell.edu!boneill