Недавно я заинтересовался изучением управления кучей в C (модуль malloc).Я хочу разбить исходные файлы malloc (например, malloc.c, arena.c) на более мелкие файлы, чтобы их было легче читать и изучать.Я использую glibc 2.23
и успешно собрал его локально (в отдельной папке "build") на Ubuntu 14.04
, следуя инструкциям в вики.
В качестве моей первоначальной попытки я поставил __malloc_assert
в файлы massert.h
и massert.c
, но потом понял, Я понятия не имею, как добавить их в make-файлы, чтобы они могли быть скомпилированы и связаны .
Так как я переехал __malloc_assert
из malloc.c
я получил ошибки связи при повторном запуске make
, что ожидалось:
/home/mvs/git/glibc/build/libc_pic.os: In function `detach_arena':
/home/mvs/git/glibc/malloc/arena.c:629: undefined reference to `__malloc_assert'
/home/mvs/git/glibc/build/libc_pic.os: In function `mremap_chunk':
/home/mvs/git/glibc/malloc/malloc.c:2832: undefined reference to `__malloc_assert'
/home/mvs/git/glibc/malloc/malloc.c:2813: undefined reference to `__malloc_assert'
/home/mvs/git/glibc/malloc/malloc.c:2812: undefined reference to `__malloc_assert'
/home/mvs/git/glibc/malloc/malloc.c:2830: undefined reference to `__malloc_assert'
/home/mvs/git/glibc/build/libc_pic.os:/home/mvs/git/glibc/malloc/malloc.c:2776: more undefined references to `__malloc_assert' follow
Я подумал, что мне следует посмотреть, как malloc/malloc.c
используется в make-файлах, но яне мог найти где это используется.В основном я смотрю на следующие файлы:
- glibc / Makeconfig
- glibc / Makefile
- glibc / Rules
- glibc / malloc /Makefile
Кроме того, я искал список рассылки makefile
в libc-help
и просмотрел все результаты, но не нашел того, который соответствует тому, что я хочу.Два из потоков, "glibc + add new function" и "Добавление функции в glibc?" , говорили о добавлении новой функции в библиотеку, что не в моем случае(Я не добавляю новую функцию, а просто реструктурирую код).
Я новичок в системе makefile и все еще читаю руководство по сборке GNU, но мысль о том, что снятие электронной почты здесь может вывести меня из себяборьба быстрее.
Спасибо!