Trying to get BASH going.

Art Neilson art at pilikia.uucp
Wed Feb 21 18:06:38 AEST 1990


In article <1990Feb20.070242.4567 at rancho.uucp> rock at rancho.uucp (Rock Kent) writes:
>I've been trying the get the GNU Bourne Again Shell (BASH) to compile
>on a Microport V/386 system.  I'm currently failing the compile in
>nojobs.c at line 169 with an illegal lhs of assignment operator:
>	  status.w_termsig = 0;
>This apparently conflicts with line 22 of jobs.h:
>          #define w_termsig bytes.low & 0x7f
>
>As you can probably tell, I'm not a C programmer.  I tried compiling
>under both cc and gcc (Greenhills).  I would appreciate help on this
>one from someone who has the BASH up and running under some i386
>system.  
>
>***************************************************************************
>*Rock Kent    rock at rancho.uucp        POB 8964, Rancho Sante Fe, CA. 92067*
>***************************************************************************

The problem here is with the defines on lines 22 & 24 or the included file
jobs.h as listed below:

   22  #define w_termsig bytes.low & 0x7f
   23  #define w_stopsig bytes.high
   24  #define w_retcode bytes.high

The statement on line 169 or nojobs.c would expand as follows given the
define expansion from above:

	status.bytes.low & 0x7f = status.bytes.high = 0;

In C we can't have a calculation on the LHS (Left Hand Side) of an assignment.
The LHS must evaluate to an address in memory.

What I did to resolve the problem was to comment out the line at 169 and
add the following replacement line immediately afterward:

	status.bytes.low = status.bytes.high = 0;


-- 
Arthur W. Neilson III		| ARPA: manapua!pilikia!art at nosc.mil
Bank of Hawaii Tech Support	| UUCP: uunet!ucsd!nosc!manapua!pilikia!art



More information about the Comp.unix.i386 mailing list