From ortmann@localhost.nodak.edu  Wed May 24 18:19:34 1995
Received: from localhost.nodak.edu (ndts2.pt08.ndsu.NoDak.edu [134.129.108.124])
          by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id SAA01644
          for <FreeBSD-gnats-submit@freebsd.org>; Wed, 24 May 1995 18:19:29 -0700
Received: (from ortmann@localhost) by localhost.nodak.edu (8.6.11/8.6.9) id UAA09582; Wed, 24 May 1995 20:17:19 -0500
Message-Id: <199505250117.UAA09582@localhost.nodak.edu>
Date: Wed, 24 May 1995 20:17:19 -0500
From: Daniel Ortmann <ortmann@localhost.nodak.edu>
Reply-To: ortmann@plains.nodak.edu
To: FreeBSD-gnats-submit@freebsd.org
Subject: when invoked from "make' cc not including name lists in some library objects
X-Send-Pr-Version: 3.2

>Number:         442
>Category:       gnu
>Synopsis:       when invoked from "make' cc not including name lists in some library objects
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed May 24 18:20:00 1995
>Closed-Date:    Thu Feb 8 10:07:45 PST 1996
>Last-Modified:  Thu Feb  8 10:09:42 PST 1996
>Originator:     Daniel Ortmann
>Release:        FreeBSD 2.0.950418-SNAP i386
>Organization:
North Dakota State University
>Environment:

I am running "current", but this problem has been around for quite
awhile.

>Description:

When "make"ing some library object files "cc" apparently goofs up
and forgets to include names in the object files.  This causes any
routine that tries to use that library object to not link because
a name is not found.

This happens *only* inside of "make", and never when manually
compiling that object.

>How-To-Repeat:

The following libraries/object files have this problem.  To locate
the problem object files on your system use the following bash code
fragment.  Following the fragment is a slightly edited summary of
the results when run on my system.

To repeat the problem, delete the mentioned object file under the
appropriate library subdirectory and type "make" in that library
subdirectory.  You will see an error message when linking, but you
can run "nm" explicitly on the resulting library to see if the
names are missing.

Now delete the offending object file and run cc directly in the
obj subdirectory.  Go up a level and "make" again.  This time the
names are in the object file and the library is made correctly.
Executables that are linked against that library now find the
referenced functions.

for i in `find /usr/lib/lib* -type f`
do
    echo $i >&2
    nm $i >&-
    sleep 1     # maybe not needed, but timing you know...
done 2>&1 | more

/usr/lib/libc.a
nm: bt_debug.o: no name list.
(Note that this comes from src/lib/libc/db/btree/bt_debug.c)

/usr/lib/libc_pic.a
nm: bt_debug.so: no name list.

/usr/lib/libcurses.a
nm: ctrace.o: no name list.

/usr/lib/libf2c.a
nm: Version.o: no name list.

/usr/lib/libforms.a
nm: debug.o: no name list.

/usr/lib/libg++.a
nm: math.o: no name list.

/usr/lib/librpcsvc.a
nm: yppasswd_xdr.o: no name list.
nm: spray_xdr.o: no name list.
nm: sm_inter_xdr.o: no name list.
nm: rwall_xdr.o: no name list.
nm: rstat_xdr.o: no name list.
nm: rquota_xdr.o: no name list.
nm: rnusers_xdr.o: no name list.
nm: rex_xdr.o: no name list.
nm: nlm_prot_xdr.o: no name list.
nm: nfs_prot_xdr.o: no name list.
nm: mount_xdr.o: no name list.
nm: klm_prot_xdr.o: no name list.

>Fix:
	
Re-compile and re-link the offending object file manually as
mentioned above.
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: wollman 
State-Changed-When: Thu Feb 8 10:07:45 PST 1996 
State-Changed-Why:  
Not A Bug. 
>Unformatted:


