robert@swanee.ee.uwa.oz.au (Roberto Togneri) (03/26/91)
At last! I have got g++-1.39 and libg++-1.39 installed on our Sparc2 (4.1.1) and our 4D/20 iris (3.1d). In both cases a proper malloc is important and the GNU malloc should not be used (i.e. define NO_LIBGXX_MALLOC in the libg++ Makefile). Here is the problem: 1. If I use the GNU malloc both the iris and sun g++ give me a clobbered space detected error when running some c++ programs written by a colleague. The Sun passes make tests; the iris doesn't. If I use the system malloc then there is no core dump for the Sun g++ but I get a segmentation fault for the iris g++. dbx indicates that the fault occurred during the malloc call. In fact this is one of the reasons the iris g++ fails the make tests. Does that mean that the system malloc on the iris isn't up to scratch? Or is there still a definite problem with g++ on an iris (mips) ? (BTW I have tried the OSF version of gcc and g++ but it has the same problem) If you have any ideas I'm all eyes! -- Dr. Roberto Togneri Phone: +61-9-380-2535 Dept. of Electrical & Electronic Engineering The University of Western Australia Fax: +61-9-380-1065 NEDLANDS WA 6009 Australia Email: robert@swanee.ee.uwa.oz.au
dixons%phvax.dnet@SMITHKLINE.COM (03/26/91)
Dr. Roberto Togneri writes: >>At last! >> I have got g++-1.39 and libg++-1.39 installed on our Sparc2 (4.1.1) and >>our 4D/20 iris (3.1d). In both cases a proper malloc is important and the >>GNU malloc should not be used (i.e. define NO_LIBGXX_MALLOC in the libg++ >>Makefile). >> >>Here is the problem: >> >>1. If I use the GNU malloc both the iris and sun g++ give me a clobbered >>space detected error when running some c++ programs written by a colleague. >>The Sun passes make tests; the iris doesn't. If I use the system malloc then >>there is no core dump for the Sun g++ but I get a segmentation fault for the >>iris g++. dbx indicates that the fault occurred during the malloc call. In >>fact this is one of the reasons the iris g++ fails the make tests. >> >>Does that mean that the system malloc on the iris isn't up to scratch? >>Or is there still a definite problem with g++ on an iris (mips) ? >>(BTW I have tried the OSF version of gcc and g++ but it has the same >>problem) I looked a little at the malloc issue with the OSF version of g++ and I suspect the same problem is in version 1.39. What I found by looking at the code generated was that in some cases, the same memory area was being freed twice. The gnu malloc routines (at least the version with OSF) caught that as a problem since they do some crude error checking on the area to be freed/allocated. System mallocs don't necessarily do this, but also may not be hurt by freeing an already freed area. I suspect, however, that sometimes this causes the seg faults and other problems which turn up in the libg++ tests for example. I believe that the OSF and gnu 1.39 versions have the same MIPS support and that this is a generic problem with the MIPS implementation. I looked a little at the SUN4 implementation and did not find the same double deallocation code generated. I emailed my findings to the person who is listed in the comments as doing the MIPS g++ work but never heard back. I'm afraid that coming up with a fix is more than I want to tackle. Perhaps someone else has gotten further... Scott Dixon (dixons@smithkline.com)