[comp.sys.ibm.pc] Turbo C Linking Large Programs

tjr@ihnet.ATT.COM (Tom Roberts) (09/21/87)

Several posters have alluded to trouble linking TURBO C programs containing
more than 64K of code segments.

I have been developing a 15,000-line music program using TURBO C, and have
had no such problems; the .EXE file is currently 125 kilobytes.

I do not use the integrated environment, because I have some inline ASM, and
some .ASM files; I use my own implementation of MAKE, TCC and TLINK.
I have a 600 kb RAM disk, on which I put MAKE, TCC, TLINK, MASM, all of
the header files, and the L-model libraries; the system is fast (a complete
make of the entire program takes 3 minutes to make the .EXE file; a single-file
make takes typically 20-30 sec; all on an AT&T PC6300).

This program uses no floating point. The only TURBO C bug I have found
that affects me is that TLINK often hangs when it is ^C-d (re-boot time). 
TLINK is so much faster than LINK that I live with this annoyance.

TURBO C code is not very good:

	struct BLAH blah[];

	blah[i].x = 0;
	blah[i].y = 12;
	blah[i].z = -1;

This code recomputes blah[i] three times (!). Using a pointer eliminates
the multiple computations. Note that in Large model it is difficult and
VERY NON-PORTABLE to use a register pointer (but it can be done).


Tom Roberts
ihnp4!ihnet!tjr