From owner-freebsd-current Sat Jan 20 21:55:36 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id VAA19181 for current-outgoing; Sat, 20 Jan 1996 21:55:36 -0800 (PST) Received: from austin.polstra.com (austin.polstra.com [206.213.73.10]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id VAA19169 for ; Sat, 20 Jan 1996 21:55:33 -0800 (PST) Received: (from jdp@localhost) by austin.polstra.com (8.6.12/8.6.12) id VAA14286; Sat, 20 Jan 1996 21:55:20 -0800 Date: Sat, 20 Jan 1996 21:55:20 -0800 From: John Polstra Message-Id: <199601210555.VAA14286@austin.polstra.com> To: jdli@csie.nctu.edu.tw Subject: Re: problems in -current (was Re: awk broken ???) Newsgroups: polstra.freebsd.current In-Reply-To: <199601210426.MAA13402@linux.csie.nctu.edu.tw> Organization: Polstra & Co., Seattle, WA Cc: freebsd-current@freebsd.org Sender: owner-current@freebsd.org Precedence: bulk In article <199601210426.MAA13402@linux.csie.nctu.edu.tw> you write: > Nate writes: > > 2) John Polstra's change which affected all shlibs. > > jdp 96/01/16 16:03:10 > > > > Modified: share/mk bsd.lib.mk > > Log: > > Always link /usr/lib/c++rt0.o into a shared library. CPLUSPLUSLIB is no > > longer necessary, and can be removed from Makefiles. > > > > Unfortunately, I suspect the latter, but have no way of checking it > > right now. > > Ya...you are right, after back out this change, the system is > happy again....No more awk problem, no more "malloc warning ...." > Thanks. Hi, I'm the guy who made the change (CPLUSPLUSLIB) that seems to be causing the problem. I have been trying to figure out what could be going on. So far, I have only one idea. The change that I made to bsd.lib.mk causes /usr/lib/c++rt0.o to be linked into every shared library. Formerly, it was linked into just the C++ shared libraries. This change requires that you have the latest version of /usr/lib/c++rt0.o installed on your system. Perhaps, when the shared libraries are being built, the old version of c++rt0.o is still installed. In other words, maybe the new version of c++rt0.o is not being installed early enough in the "make world" process. If you build your shared libraries with the old version of /usr/lib/c++rt0.o, there will be problems. (But, I wouldn't expect exactly the kinds of problems that you've described.) I will try to test this theory myself, here on my system. But I'm not up-to-date on -current, so it's going to take some time. If you (or anybody who's up-to-date) are interested, you could try it pretty easily. Just do this: 1. Finish your "make world", with my change to bsd.lib.mk still backed out. Then the newest c++rt0.o will definitely be installed on your system. 2. Put my change back into bsd.lib.mk. 3. Rebuild the libraries that awk depends on: libgnuregex, libm, and libc. You don't have to recompile anything. All you have to do is relink the shared libraries. The easiest way to do that is to delete the shared library from its build directory, then do "make" in that directory, then install the new library into /usr/lib. 4. Now see if the problem has come back again. If anybody tries this before I get it done, please let me know what happened! Sorry for the trouble. -- John -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-knowledge is always bad news." -- John Barth