make all CC=gcc LD=gcc OBJS_EXT="_80386.o _zmatch.o" CFLAGS="-O -DUNIX -DIDEA32 -DASM -DMAX_NAMELEN=255"
[...]
gcc -E 80386.S > _80386.s
gcc -c _80386.s
80386.S:30:invalid character '_' in opcode
80386.S:82:invalid character '_' in opcode
80386.S:125:invalid character '_' in opcode
80386.S:167:invalid character '_' in opcode
80386.S:219:invalid character '_' in opcode
80386.S:261:invalid character '_' in opcode
80386.S:271:invalid character '_' in opcode
*** Error code 1
Stop.
*** Error code 1
Stop.
Any help?
--
Sascha Wildner, Am Druvendriesch 27, 50354 Huerth, Germany
A happy FreeBSD user.
Your compile is fine...
>[...]
>gcc -E 80386.S > _80386.s
This is the problem step... The preprocessor magic used in 80386.S
is generating symbols like '_EntryPoint :'. The assembler sees two
fields and assumes that the first is an opcode. The trick is to make
the cpp generate '_EntryPoint:' (note the missing space). Here's a
patch.
*** broken/80386.S Sun Apr 24 20:39:35 1994
--- ./80386.S Sun Apr 24 20:38:35 1994
***************
*** 13,21 ****
#ifndef SYSV
#ifdef __STDC__
! #define ENTRY(name) .align 4 ; .globl _##name ; _##name:
#else
! #define ENTRY(name) .align 4 ; .globl _/**/name ; _/**/name:
#endif
#else /* SYSV */
#define ENTRY(name) .align 4 ; .globl name ; name:
--- 13,21 ----
#ifndef SYSV
#ifdef __STDC__
! #define ENTRY(name) .align 4 ; .globl _##name ; _##name##:
#else
! #define ENTRY(name) .align 4 ; .globl _/**/name ; _/**/name/**/:
#endif
#else /* SYSV */
#define ENTRY(name) .align 4 ; .globl name ; name: