Я использую свой модифицированный glibc. Я увидел в скомпилированном коде, что компилятор не использовал многие стандартные библиотечные функции из моего glibc, когда я линковался с ним. Затем я поставил флаг -fno-builtin
. Дела пошли лучше, и я увидел, что многие функции, которые не были взяты из glibc, теперь взяты оттуда, например, malloc
.
Тем не менее, для многих функций, таких как mmap
, компилятор использует некоторый встроенный код. Теперь, как я могу попросить компилятор использовать исключительно код из glibc, а не встроенные функции?
В моей функции x86-64, если я делаю objdump скомпилированного glibc, ниже приводится сгенерированная функция mmap. Я не могу найти эквивалентный код в исходном коде glibc.
0000000000000000 <__mmap>:
0: 49 89 ca mov %rcx,%r10
3: b8 09 00 00 00 mov $0x9,%eax
8: 0f 05 syscall
a: 48 3d 01 f0 ff ff cmp $0xfffffffffffff001,%rax
10: 0f 83 00 00 00 00 jae 16 <__mmap+0x16>
16: c3 retq