rjk@mgweed.UUCP (Randy King) (03/16/84)
One possible reason for changing the BSD string index functions into the USG string functions is that items in string(3) like strchr, strcmp, etc. are implemented in hardware on the AT&T processors. Calling one of these functions traps to some microcode instructions and is obviously faster. Randy King AT&T/CP-MG ihnp4!mgweed!rjk
rees@apollo.uucp (Jim Rees) (03/17/84)
I'm not convinced. The file funcs.c contains source code for
index() and rindex(). Makefile compiles this source file with
the flags "-Dindex=strchr -Drindex=strrchr". So you end up with
a funcs.o containing definitions for strchr and strrchr, and
they certainly don't make use of the hardware instructions.
When inews is bound together by ld, all of the calls to strchr
and strrchr will be pointed at the ones defined in funcs.o, not
the fast assembler-coded ones in /lib/libc.a.
It seems to me that we should:
1. Drop the definitions of index() and rindex() from funcs.c.
2. Leave the -Dindex=strchr in the USG version of Makefile.
3. Sites that don't have either index-rindex or strchr-strrchr
will just have to write them, or we could send along the
definitions from funcs.c but in a separate source file.
Alternatively, if we are going to continue to suppply index()-rindex()
in funcs.c, it makes absolutely no sense to leave the -Dindex stuff
in the makefile, as far as I can tell.