malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1

Message ID 588ad7ca-f69a-3aa5-7715-a60437587993@huawei.com
State Committed
Headers
Series malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1 |

Commit Message

Qingqing Li Oct. 22, 2020, 9:11 a.m. UTC
  malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1.

this is because commit e9c4fe93b3855239752819303ca377dff0ed0553 has 
change the struct malloc_chunk's member "size" to "mchunk_size".

the reproduction is like that:
setp1: modify related Makefile.
vim ../glibc/malloc/Makefile
CPPFLAGS-malloc.o += -DMALLOC_DEBUG=2

step2: ../configure --prefix=/usr
        make -j32

this will cause the compile error:
/home/liqingqing/glibc_upstream/buildglibc/malloc/malloc.o
In file included from malloc.c:1899:0:
arena.c: In function ‘dump_heap’:
arena.c:422:58: error: ‘struct malloc_chunk’ has no member named ‘size’
        fprintf (stderr, "chunk %p size %10lx", p, (long) p->size);
                                                           ^~
arena.c:428:17: error: ‘struct malloc_chunk’ has no member named ‘size’
        else if (p->size == (0 | PREV_INUSE))
---
  malloc/arena.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

            break;
  

Comments

Qingqing Li Oct. 26, 2020, 1:32 p.m. UTC | #1
ping again.

On 2020/10/22 17:11, liqingqing wrote:
> malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1.
> 
> this is because commit e9c4fe93b3855239752819303ca377dff0ed0553 has 
> change the struct malloc_chunk's member "size" to "mchunk_size".
> 
> the reproduction is like that:
> setp1: modify related Makefile.
> vim ../glibc/malloc/Makefile
> CPPFLAGS-malloc.o += -DMALLOC_DEBUG=2
> 
> step2: ../configure --prefix=/usr
>         make -j32
> 
> this will cause the compile error:
> /home/liqingqing/glibc_upstream/buildglibc/malloc/malloc.o
> In file included from malloc.c:1899:0:
> arena.c: In function ‘dump_heap’:
> arena.c:422:58: error: ‘struct malloc_chunk’ has no member named ‘size’
>         fprintf (stderr, "chunk %p size %10lx", p, (long) p->size);
>                                                            ^~
> arena.c:428:17: error: ‘struct malloc_chunk’ has no member named ‘size’
>         else if (p->size == (0 | PREV_INUSE))
> ---
>   malloc/arena.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/malloc/arena.c b/malloc/arena.c
> index cecdb7f4c4..202daf15b0 100644
> --- a/malloc/arena.c
> +++ b/malloc/arena.c
> @@ -419,13 +419,13 @@ dump_heap (heap_info *heap)
>                      ~MALLOC_ALIGN_MASK);
>     for (;; )
>       {
> -      fprintf (stderr, "chunk %p size %10lx", p, (long) p->size);
> +      fprintf (stderr, "chunk %p size %10lx", p, (long) 
> chunksize_nomask(p));
>         if (p == top (heap->ar_ptr))
>           {
>             fprintf (stderr, " (top)\n");
>             break;
>           }
> -      else if (p->size == (0 | PREV_INUSE))
> +      else if (chunksize_nomask(p) == (0 | PREV_INUSE))
>           {
>             fprintf (stderr, " (fence)\n");
>             break;
  

Patch

diff --git a/malloc/arena.c b/malloc/arena.c
index cecdb7f4c4..202daf15b0 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -419,13 +419,13 @@  dump_heap (heap_info *heap)
                     ~MALLOC_ALIGN_MASK);
    for (;; )
      {
-      fprintf (stderr, "chunk %p size %10lx", p, (long) p->size);
+      fprintf (stderr, "chunk %p size %10lx", p, (long) 
chunksize_nomask(p));
        if (p == top (heap->ar_ptr))
          {
            fprintf (stderr, " (top)\n");
            break;
          }
-      else if (p->size == (0 | PREV_INUSE))
+      else if (chunksize_nomask(p) == (0 | PREV_INUSE))
          {
            fprintf (stderr, " (fence)\n");