jeff@cjsa.wa.com (Jeffery Small) (05/04/91)
When compiling perl4.003 on the 3B1 using the stock compiler (Version 3.51m), I get the following messages for toke.o (and ttoke.o): ============================================================================== "toke.c", line 2333: warning: illegal member use: f_up "toke.c", line 2333: warning: illegal structure pointer combination, op = "toke.c", line 2345: warning: illegal member use: f_up "toke.c", line 2345: warning: illegal structure pointer combination, op = "toke.c", line 2453: warning: illegal member use: f_up "toke.c", line 2453: warning: illegal structure pointer combination, op = "toke.c", line 2464: warning: illegal member use: f_up "toke.c", line 2464: warning: illegal member use: f_type "toke.c", line 2517: warning: illegal member use: f_up "toke.c", line 2517: warning: illegal structure pointer combination, op = ============================================================================== This turns out to be a problem with a pre-existing #define in <sys/file.h> as follows: == /usr/include/sys/file.h =================================================== struct file { char f_flag; cnt_t f_count; /* reference count */ union { struct inode *f_uinode; /* pointer to inode structure */ struct file *f_unext; /* next entry in freelist */ } f_up; off_t f_offset; /* read/write character pointer */ }; #define f_inode f_up.f_uinode #define f_next f_up.f_unext ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ============================================================================== The perl structure formcmd (FCMD) contains a f_next member and this is being replaced by "f_up.unext" with obviously bad results. Although the program does compile, it is failing on the comp/decl.t and op/write.t tests - and I am assuming that these problem are caused by the above situation. Before I hack things up I wanted to see if there was a standard patch or fix for this condition? Have others gotten perl to compile on this platform without problems? Are you including sys/file.h in your config.sh? Thanks for any help you may be able to offer. -- Jeff Small C. Jeffery Small & Associates (206) 232-3338 uunet!nwnexus!cjsa!jeff 7000 E Mercer Way, Mercer Island, WA 98040
rmfowler@texrex.uucp (Rex Fowler) (05/05/91)
In article <1991May3.183553.3605@cjsa.wa.com> jeff@cjsa.wa.com (Jeffery Small) writes: >When compiling perl4.003 on the 3B1 using the stock compiler (Version 3.51m), >I get the following messages for toke.o (and ttoke.o): > > "toke.c", line 2517: warning: illegal member use: f_up >. >.<lots of "toke.c" errors deleted> >. > "toke.c", line 2517: warning: illegal structure pointer combination, op = > >This turns out to be a problem with a pre-existing #define in <sys/file.h> >as follows: > I am using gcc and i did not include file.h, try fcntl.h instead. Configure script did it for me. The only things I've changed was putting optimize='-g" or optimize="" in cflags.SH for eval.c teval.c toke.c ttoke.c > >Although the program does compile, it is failing .... How did you get teval.c to compile? I've tried the stock compiler AND gcc with and without optimization, but it turns out that the assembly code just won't assemble with as. (branch offset to remote). I've even tried "as -n". I'm waiting on someone to tell me how to use the GNU assembler (gas) to see if that might make a difference. The comment in eval.c from patch1 makes me believe that Larry fixed this problem for *most* machines. > >Before I hack things up I wanted to see if there was a standard patch or >fix for this condition? Have others gotten perl to compile on this platform >without problems? Are you including sys/file.h in your config.sh? I wouldn't hack it up yet. If you don't have gcc, get it. It got me through the regular perl files fine, but now the tainted teval.c is stopping me. >Thanks for any help you may be able to offer. >-- >Jeff Small C. Jeffery Small & Associates (206) 232-3338 >uunet!nwnexus!cjsa!jeff 7000 E Mercer Way, Mercer Island, WA 98040 -- Rex Fowler <rmfowler@texrex.cirr.com> UUCP: egsner!texrex!rmfowler
jeff@cjsa.wa.com (Jeffery Small) (05/05/91)
Thanks to everyone who responded. As it turned out, the easy solution was to eliminate references to <sys/file.h> and include <fcntl.h>. Perl now compiles and tests out AOK. The reason the difficulty arose in the first place is that this machine has the WIN 3B TCP/IP software installed and this adds a [half] mixed bag of goodies that is just enough to totally confuse the Configure script. I had managed to handcraft config.sh back into pretty good shape and this one last modification finally did the trick. -- Jeff Small C. Jeffery Small & Associates (206) 232-3338 uunet!nwnexus!cjsa!jeff 7000 E Mercer Way, Mercer Island, WA 98040
cals@cals01.NEWPORT.RI.US (Charles A. Sefranek) (05/12/91)
In article <1991May3.183553.3605@cjsa.wa.com> jeff@cjsa.wa.com (Jeffery Small) writes: >When compiling perl4.003 on the 3B1 using the stock compiler (Version 3.51m), >I get the following messages for toke.o (and ttoke.o): > [ messages deleted ]... > >This turns out to be a problem with a pre-existing #define in <sys/file.h> >as follows: > [ more deleted ]... > >Before I hack things up I wanted to see if there was a standard patch or >fix for this condition? Have others gotten perl to compile on this platform >without problems? Are you including sys/file.h in your config.sh? > I successfully built and installed perl 4.0.3 using both the stock /bin/cc and the ccc tool (snarfed from the net) to include shared libraries. The log from my configure run states that Larry's configure program decided *not* to include <sys/file.h>. Here's what I did: For stock /bin/cc (no shared libraries): 1) Take the defaults for all configure questions (don't use a previous config.sh run!!). Make sure you leave the compiler definition as 'cc'. I even left the -O optimizer flag alone - it worked OK. 2) At the shell escape, edit config.sh as follows: a) Change d_voidsig to undef b) Change d_tosignal to int 3) Complete the make process per instructions. (It took a *LONG* time to compile, more than 2 hours!!) For shared libraries: 1) Again take the defaults for all configure questions, EXCEPT: a) Where it asks about additional libraries, don't include -lmalloc My run had -lndir and -lm Don't try to use /bin/ccc for the compiler - Configure blows up on it. 2) At the shell escape, edit config.sh as follows: a) Change d_voidsig to undef b) Change d_tosignal to int c) Change cc to /bin/ccc 3) Complete the make process per instructions. (It still takes a *LONG* time to compile !!). Your mileage may vary depending on your machines configuration. I'm using a fairly standard 3b1, 2 Meg RAM, 67 Meg HD with Doug Gwen's directory library routines installed. -- -- Charlie Sefranek Home: cals@cals01.NEWPORT.RI.US Work: c4s@sgfb.ssd.ray.com {I heard Kuwait is burning the midnight oil, but this is ridiculous!}
dke@ux.acs.umn.edu (David K. Eggen) (05/16/91)
Yipes! and to think I was going to try to start complieing perl today! does anyone have a binary I could ftp? :)
dave@galaxia.Newport.RI.US (David H. Brierley) (05/20/91)
In article <3940@ux.acs.umn.edu> dke@ux.acs.umn.edu (David K. Eggen) writes: >and to think I was going to try to start complieing perl today! >does anyone have a binary I could ftp? Perl version 4.0 patch level 3 binaries for the 3b1 are available on osu-cis. For ftp access use the name "cheops.cis.ohio-state.edu". The file name is "att7300/languages/perl-bin.tar.Z". For uucp access you must preceed the file name with "~uucp/" and for ftp access you must preceed it with "pub/". I suggest you also get a copy of the files "README.Z" and "README.quick.Z" from the att7300 directory. -- David H. Brierley Home: dave@galaxia.newport.ri.us; Work: dhb@quahog.ssd.ray.com Send comp.sources.3b1 submissions to comp-sources-3b1@galaxia.newport.ri.us %% Can I be excused, my brain is full. **