Как сказать gcc, чтобы прекратить использование встроенных функций?

Я использую свой модифицированный 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  
6
задан MetallicPriest 21 May 2012 в 15:11
поделиться