problem with malloc (Irix 3.3.1)

Ian Hoyle ianh at bhpmrl.oz.au
Fri Oct 26 05:18:32 AEST 1990


ianh at bhpmrl.oz.au (Ian Hoyle) writes:

>I've got an ongoing (well it was there with 3.2.2 and we just went to
>3.3.1 today) problem with malloc. The application in question is
>Rich Burridge's mp postscript filter program, patchlevel 13.

>The following code fragment is causing problems:

>      len = strlen(ptr) ;
>      FPRINTF(stderr, "%s [] %s []  %i\n", ptr, whoami,strlen(whoami)) ;
>      timenow = malloc((unsigned)(len + 6 + strlen(whoami) + 1)) ;
>      FPRINTF(stderr,"After that error\n");

[.... other stuff from dbx ]

>I linked it using -lmalloc.  I'm completely at a loss to what may be occuring.

Well I've fixed the problem. 

When mp was being linked, the command line in the Makefile was

       $(CC) $(LDFFLAGS) -o mp $(OBJS)

where LDFLAGS = -lmalloc

My guess is that there is an implicit -lc tacked on the end of this line thus
using the malloc(3C) and *not* malloc(3X). It should have read

       $(CC) -o mp $(OBJS) $(LDFLAGS)

thus loading libmalloc *last*.

I don't think it's a case of RTFM because I've just done that and couldn't 
find reference to exactly where the library definition should go in a cc
compile line. eg. from the manual entry for malloc(3X) :

"It is found in the library "libmalloc.a", and is loaded if the option
-lmalloc is used with cc(1) or ld(1)".

But, it's probably there somewhere and I missed it ..... damn it :-(

Thanks to those people who replied to me and made lots of useful suggestions
to chase up,

			ian
--
                Ian Hoyle
     /\/\       Image Processing & Data Analysis Group
    / / /\      BHP Melbourne Research Laboratories
   / / /  \     245 Wellington Rd, Mulgrave, 3170
  / / / /\ \    AUSTRALIA
  \ \/ / / /
   \  / / /     Phone   :  +61-3-560-7066
    \/\/\/      FAX     :  +61-3-561-6709
                E-mail  :  ianh at bhpmrl.oz.au



More information about the Comp.sys.sgi mailing list