[comp.binaries.ibm.pc.d] v10i111: dj1bin, GNU C and C++ for 386/DOS

nelson@sun.soe.clarkson.edu (Russ Nelson) (02/12/91)

If anyone lacks the patience for all 36 parts to come across the net, DJ
has already uploaded his code to grape.ecs.clarkson.edu:pub/msdos/djgcc/*
I believe it is his intention to use grape as his primary distribution
point.

--
--russ <nelson@clutx.clarkson.edu> I'm proud to be a humble Quaker.
It's better to get mugged than to live a life of fear -- Freeman Dyson
I joined the League for Programming Freedom, and I hope you'll join too.

poffen@sj.ate.slb.com (Russ Poffenberger) (02/12/91)

In article <NELSON.91Feb11113723@sun.clarkson.edu> nelson@clutx.clarkson.edu (aka NELSON@CLUTX.BITNET) writes:
>If anyone lacks the patience for all 36 parts to come across the net, DJ
>has already uploaded his code to grape.ecs.clarkson.edu:pub/msdos/djgcc/*
>I believe it is his intention to use grape as his primary distribution
>point.
>

I just wish that it could co-exist with memory managers like qemm. I have to
boot without it to run it, or any programs created with it. go32.exe also seems
to have a minor bug. The docs state that you can copy go32.exe to prog.exe, and
it will find the gcc compiled a.out called prog and execute it. This only works
if you give it at least one argument though. The proverbial hello program (no
arguments) elicits an error message. You have to give it an argument, even if
the program doesn't expect any, to get it to work.

Russ Poffenberger               DOMAIN: poffen@sj.ate.slb.com
Schlumberger Technologies       UUCP:   {uunet,decwrl,amdahl}!sjsca4!poffen
1601 Technology Drive		CIS:	72401,276
San Jose, Ca. 95110             (408)437-5254

davidsen@sixhub.UUCP (Wm E. Davidsen Jr) (02/13/91)

In article <1991Feb11.233356.18585@sj.ate.slb.com> poffen@sj.ate.slb.com (Russ Poffenberger) writes:

| I just wish that it could co-exist with memory managers like qemm. I have to
| boot without it to run it, or any programs created with it. go32.exe also seems
| to have a minor bug. The docs state that you can copy go32.exe to prog.exe, and
| it will find the gcc compiled a.out called prog and execute it. This only works
| if you give it at least one argument though. The proverbial hello program (no
| arguments) elicits an error message. You have to give it an argument, even if
| the program doesn't expect any, to get it to work.

  It seems to work for me without args.
-- 
bill davidsen - davidsen@sixhub.uucp (uunet!crdgw1!sixhub!davidsen)
    sysop *IX BBS and Public Access UNIX
    moderator of comp.binaries.ibm.pc and 80386 mailing list
"Stupidity, like virtue, is its own reward" -me

tima@agora.rain.com (Tim Anderson) (02/14/91)

What DOS extender dos this thing use? I am not familiar with any that would
hold up to GNU's Copyleft... (and how do I get ahold of it??)

tima@agora.rain.com

ECSGRT@lure.latrobe.edu.au (Geoffrey Tobin, Electronic Engineering) (02/14/91)

In article <1991Feb11.233356.18585@sj.ate.slb.com>, poffen@sj.ate.slb.com (Russ Poffenberger) writes:
> 
> I just wish that it could co-exist with memory managers like qemm.

Is this why XMDISK and DJC (previously) seized my system?

I (only) suspect that MS WINDOWS 3.0 also may clash with DJ's gcc.


SOME GOOD NEWS:

When I replaced the autoexec.bat and *.sys files for WINDOWS by
those for the Basic DOS system, and rebooted, then DJ's gcc worked
without a hitch.

I've set up the DOS env. vars as follows:

PATH=...;F:\DJC\BIN
gccbin=f:/djc/bin
gccinc=f:/djc/include
gcclib=f:/djc/lib
gcctmp=f:/tmp

My config.sys file contains:

files= 30
buffers = 8
FCBS=10,8
device=c:\system\rmdrive.sys
device=c:\system\dmdrvr.bin
device=c:\system\dfimouse.sys


SOME DIAGNOSTICS FOR THE (TROUBLESOME) WINDOWS SETUP:

The CONFIG.SYS under the ancien regime was:

files= 30
FCBS=10,8
device=c:\system\rmdrive.sys
device=c:\system\dmdrvr.bin
device=C:\system\himem.sys
buffers = 8
device=C:\WINDOWS\smartdrv.sys 78
device=C:\WINDOWS\ega.sys

When I typed just "gcc", it rightly said:
	F:\DJC\BIN\GCC.EXE: No input files specified.
But when I typed "gcc hello.c", or typed "ar", for example, then my
system seized up.

Rebooting required the RESET button (ctrl-alt-del did nothing).

Then I found in F:\TMP the file CCAA_AAA.GP, which contained

-undef
-D__GNUC__
-Dunix
-Di386
-D__unix__
-D__i386__
hello.c
f:/tmp/ccAA_AAA.cpp

I've seen the -D compile switches in the makefiles for gcc.

My guess is that ccaa_aaa.gp and ccaa_aaa.cpp are the temporary
files for the gcc frontend and cpp passes of the compiler,
respectively.  Each time gcc crashed on hello.c, ccaa_aaa.gp had
the same name (so it wasn't randomized :-)).  Once the system
was setup right for gcc to work, the temporary files didn't stay
around.

f88hv@efd.lth.se (Henrik Vallgren) (02/14/91)

In article nelson@clutx.clarkson.edu writes:

>If anyone lacks the patience for all 36 parts to come across the net, DJ
>has already uploaded his code to grape.ecs.clarkson.edu:pub/msdos/djgcc/*
>I believe it is his intention to use grape as his primary distribution
>point.
>

For three days now, I've been waiting for parts 5..36 to show up at our site.
With little hope left I've tried grape, but only gotten a message sounding
something like "deamon dead".

Does anybody know of any other site where I could get it ?

Please answer to this group or by e-mail.

Thanx
Henrik Vallgren
f88hv@efd.lth.se

toma@sail.LABS.TEK.COM (Tom Almy) (02/15/91)

In article <1991Feb11.233356.18585@sj.ate.slb.com> poffen@sj.ate.slb.com (Russ Poffenberger) writes:
>In article <NELSON.91Feb11113723@sun.clarkson.edu> nelson@clutx.clarkson.edu (aka NELSON@CLUTX.BITNET) writes:
>>If anyone lacks the patience for all 36 parts to come across the net, DJ
>>has already uploaded his code to grape.ecs.clarkson.edu:pub/msdos/djgcc/*
>>I believe it is his intention to use grape as his primary distribution
>>point.

>[...]go32.exe also seems
>to have a minor bug. The docs state that you can copy go32.exe to prog.exe, and
>it will find the gcc compiled a.out called prog and execute it. This only works
>if you give it at least one argument though. 

This has been fixed in a recent bug fix release. I hope that the net posting
is this fixed version. I have coresponded with DJ Delorie (who BTW responds
faster than anyone I have ever delt with) on these and some other problems
(inability to do execs and conflicts with vdisk) and he is working on all
of these. An outstanding effort!

-- 
Tom Almy
toma@sail.labs.tek.com
Standard Disclaimers Apply

tomr@dbase.A-T.COM (Tom Rombouts) (02/21/91)

In article <1991Feb13.165208.2645@agora.rain.com> tima@agora.rain.com (Tim Anderson) writes:
>What DOS extender dos this thing use? I am not familiar with any that would
>hold up to GNU's Copyleft... (and how do I get ahold of it??)

Although I have not seen the source, just because it requires a 386 does
not imply that any DOS extender is being used, just that some 386 specific
instructions are being generated.  

BTW, who will now "fix" this DOS port so that floating point emulation
can be linked in?


Tom Rombouts  Torrance 'Tater  tomr@ashtate.A-T.com  V:(213)538-7108

sondeen@isi.edu (Jeff Sondeen) (02/22/91)

I succeeded in compiling a large application with DJ GCC, but only
after removing a duplicate symbol (_localtime) and adding one (_fabs)
in the main library file.  Anybody else run across this?  My transcript
follows:

gcc -o d:/ramrom/ramgen ramgen.o ramdel.o  -L. -lsicomp -lm       
ramgen.o: Undefined symbol _fabs referenced from text segment     
lib/localtim.o: Definition of symbol _localtime (multiply defined)
gen/ctime.o: Definition of symbol _localtime (multiply defined)   
                                                                  
*** Error code 1                                                  
                                                                  
-- 

/jeff	sondeen@isi.edu				"engineers were discouraged
		from bringing problems to the attention of their supervisors"
	-- John Magnus, final report, Hubble Space Telescope investigation

bobmon@iuvax.cs.indiana.edu (RAMontante) (02/23/91)

Can some kind soul point me to an ftp site for dj1bin and the other
portions of gnuc/gnuc++ ?  I couldn't collect the pieces of the posting
(diskspace constraints).

thanks in advance,
-bob,mon.

ewilliam@afit.af.mil (News System Account) (02/25/91)

tomr@dbase.A-T.COM (Tom Rombouts) writes:

>In article <1991Feb13.165208.2645@agora.rain.com> tima@agora.rain.com (Tim Anderson) writes:
>>What DOS extender dos this thing use? I am not familiar with any that would
>>hold up to GNU's Copyleft... (and how do I get ahold of it??)

>Although I have not seen the source, just because it requires a 386 does
>not imply that any DOS extender is being used, just that some 386 specific
>instructions are being generated.  

The setup uses a DOS extender (required to get the flat address space that
UN*X programs are used to).  The extender is one written by the guy who did
the port, and placed it under the Copyleft provisions -- it is a good piece
of work, but assumes a plain system -- no QEMM, DESQview, or the like.

Ed Williams
ewilliam@blackbird.afit.af.mil

toma@sail.LABS.TEK.COM (Tom Almy) (02/26/91)

In article <1991Feb13.165208.2645@agora.rain.com> tima@agora.rain.com (Tim Anderson) writes:
>What DOS extender dos this thing use? I am not familiar with any that would
>hold up to GNU's Copyleft... (and how do I get ahold of it??)

The DOS extender is part of the package -- it is the program go32.exe, which
can be "bound" to the application. Major problems with go32: it is incompatible
with QEMM/386MAX (or Windows, for that matter), and you can't exec other
tasks. It is also considerably slower handling file I/O than the commercial
Phar Lap.  Also note that the format of gcc's a.out file is different than
that of Phar Lap linkers *.exp file, as is the handling of segments -- you
can't swap DOS extenders.



-- 
Tom Almy
toma@sail.labs.tek.com
Standard Disclaimers Apply

davidsen@sixhub.UUCP (Wm E. Davidsen Jr) (02/26/91)

In article <1991Feb20.173743.8872@dbase.A-T.COM> tomr@dbase.UUCP (Tom Rombouts) writes:

| Although I have not seen the source, just because it requires a 386 does
| not imply that any DOS extender is being used, just that some 386 specific
| instructions are being generated.  

  The extender is part of the compiler as posted. You can't get virtual
memory and 128MB of linear addressing without it.
-- 
bill davidsen - davidsen@sixhub.uucp (uunet!crdgw1!sixhub!davidsen)
    sysop *IX BBS and Public Access UNIX
    moderator of comp.binaries.ibm.pc and 80386 mailing list
"Stupidity, like virtue, is its own reward" -me