[570] in testers
(RT 6.4 R) /usr/lib/libc_p.a
daemon@ATHENA.MIT.EDU (daemon@ATHENA.MIT.EDU)
Fri Dec 29 10:43:17 1989
To: testers@ATHENA.MIT.EDU
Date: Fri, 29 Dec 89 10:42:56 EST
From: John Carr <jfc@ATHENA.MIT.EDU>
/usr/lib/libc_p.a references the function fpgen(). /lib/libc.a does
not. Thus the following when I compile a profiled program:
% cat > test.c
main()
{
printf("Hi.\n");
}
% cc -pg test.c -v
/lib/cpp -D__STDC__ -D__HIGHC__ test.c /tmp/pp.000366
/usr/lib/hc1com /tmp/pp.000366 -efile @E -silent -on CHAR_DEFAULT_UNSIGNED -off DOUBLE_MATH_ONLY -on DOUBLE_RETURN -on LONG_ENUMS -off PCC -on PCC_MSGS -ofile /tmp/IL1000366 -vfile /tmp/var000366 -machine rtfl -define ibm032 1 -pro hc.pro -copyr -dir /usr/include
MetaWare High C Compiler R2.1s
(c) Copyright 1987-89, MetaWare Incorporated
/usr/lib/hc2com -i /tmp/IL1000366 -V /tmp/var000366 -s test.c -p -S /tmp/S000366 -e -T /tmp/HC2000366
/bin/as -o test.o -V /tmp/S000366
/bin/ld -X /usr/lib/gcrt0.o test.o -lfp_p -lc_p
Undefined:
_.fpgen
_fpgen
I do not know if this will be fixed by a recompilation of the library,
or is a result of the rearrangement of floating point code done
between 6.3 and 6.4. Changing the ld command in the above compilation
to
/bin/ld -X /usr/lib/gcrt0.o test.o -lc_p -lfp_p -lc_p
fixes it.
As it is impossible to build a profiled program without this bit of
knowledge, this is a serious bug.