Date: Sat, 20 Jan 1996 21:55:20 -0800 From: John Polstra <jdp@polstra.com> To: jdli@csie.nctu.edu.tw Cc: freebsd-current@freebsd.org Subject: Re: problems in -current (was Re: awk broken ???) Message-ID: <199601210555.VAA14286@austin.polstra.com> In-Reply-To: <199601210426.MAA13402@linux.csie.nctu.edu.tw>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601210555.VAA14286>