Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!necntc!ima!cfisun!lakart!dg From: dg@lakart.UUCP (David Goodenough) Newsgroups: comp.lang.c Subject: Re: Flaming printf Message-ID: <73@lakart.UUCP> Date: 28 Apr 88 15:43:55 GMT References: <11154@mimsy.UUCP> Organization: Lake - The systems people Lines: 22 From article <11154@mimsy.UUCP> by chris@mimsy.UUCP (Chris Torek): >It is not difficult[*] to arrange for the linker to pull in a simple >printf() if the rest of the program does not use floating point, and a >full-blown floating point printf if it does. I agree, and do the same myself. I have LIB.L which is my usual library, and gets searched whenever I link a program. printf,sprintf,fprintf all reside here, and link in a normal (i.e. integer only) #doprnt which actually does the work. All my FP stuff lives in FLIB.L, which is included in the linkage with a -LF flag (just like UNIX :-). Now FLIB.L ALSO contains printf,sprintf,fprintf, which also reference (and cause linkage of) #doprnt, but the #doprnt in FLIB.L knows about floating point, and so whenever I use printf etc. and link with a -LF, I get the right printf, and #doprnt. LIB.L is also scanned BUT BECAUSE FLIB.L PROVIDED printf, IT IS NO LONGER UNDEFINED, SO IT GETS BYPASSED. Anyone who produces a linker that cannot do what I've just described needs to talk to his analysts (both system and psycho :-) -- dg@lakart.UUCP - David Goodenough +---+ | +-+-+ ....... !harvard!adelie!cfisun!lakart!dg +-+-+ | +---+