From mboxrd@z Thu Jan 1 00:00:00 1970 From: hjl@lucon.org (H.J. Lu) To: aj@suse.de (Andreas Jaeger) Cc: libc-hacker@sourceware.cygnus.com (GNU C Library) Subject: Re: Problem with __malloc_hooks :-( Date: Thu, 28 Oct 1999 08:43:00 -0000 Message-id: <19991028154315.11DF51B493@ocean.lucon.org> References: X-SW-Source: 1999-10/msg00067.html > > > The following program shows a problem I noticed with a current glibc > 2.1.3 CVS versions and XEmacs [1]: > > #define _GNU_SOURCE > #include > #include > > int > main (int argc, char argv[]) > { > char *p; > > if (argc == 1) > { > __malloc_hook = NULL; > __realloc_hook = NULL; > __free_hook = NULL; > } > > p = malloc (1000); > printf ("%p\n", p); > return 0; > } > > Have a look at the output: > > gromit:/tmp:[0]$ ./malloc > (nil) > gromit:/tmp:[0]$ ./malloc 1 > 0x8049670 > > If __malloc_hook is NULL, malloc returns NULL. The problem is that > malloc internally uses __malloc_hook and the current CVS version > doesn't call malloc before main any more :-(. > > Wolfram, can you give me some feedback, please? > Ulrich, I have verified that my preinit patch works fine. It seems that my patch has more than one benefit. Maybe it should be considered instead of your patch to exit/atexit. -- H.J. Lu (hjl@gnu.org)