[comp.soft-sys.andrew] Re-making andrew under SunOS 4.1

sbc@INFORMATICS.WUSTL.EDU (Steve Cousins) (09/11/90)

I tried to re-make andrew after installing SunOS 4.1, and I get:

cc -sun4  -I/usr/andrew/include/atk -I/usr/andrew/include -I//usr/include/X11
-o dotest dotest.o ../lib/libclass.a
ld: Undefined symbol
   _class_double
   _unpacked_to_decimal
*** Error code 2
make: Fatal error: Command failed for target `dotest'
Current working directory /usr/local/src/X-R4/contrib/toolkits/andrew/overhead/c
lass/cmd
*** Error code 1

Is there some trick to this that I'm missing?  I can't even find class_double
in .../overhead/class/cmd.

Thanks for any suggestions.

Steve Cousins
Medical Informatics Lab.
Washington University

guy@auspex.auspex.com (Guy Harris) (09/13/90)

>Is there some trick to this that I'm missing?  I can't even find class_double
>in .../overhead/class/cmd.

Rule 1: never draw conclusions from string-matching, if you can possibly
avoid it.

"class_double" is a routine in the SunOS 4.x (4.0.3, 4.0.3c, and 4.1, at
least) C library.  It has nothing whatsoever to do with the ATK "class"
mechanism.

"unpacked_to_decimal" is another routine in the C library.

The "cc" command in question links with the standard "libc", and at
least the "desktop SPARC" (Sun-4c) distribution of 4.1 has both of those
routines in the C library.  Try doing

	nm -o libc.a | egrep 'class_double|unpacked_to_decimal'
	nm -o libc.so.1.5 | egrep 'class_double|unpacked_to_decimal'

on "libc.a" and on the "libc.so" file on your 4.1 SPARC machine (I
assume it has version 1.5 here; if not, use that version instead).  If
it doesn't have entries that define them (entries with "T"), you have a
damaged copy of the C library.