Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menangani ralat `panggilan ke fungsi yang tidak diisytiharkan 'sys_icache_invalidate'` apabila melaksanakan `make` pada Mac OS Ventura M1?

Saya cuba mengekalkan aplikasi lama menggunakan PHP 5.4.45. Jadi saya memasang kod sumber versi PHP yang sepadan dari sini. Saya membuka zip folder tar.gz dan melaksanakan...

  1. ./configure --with-iconv=/opt/homebrew/opt/libiconv
  2. make

Dalam langkah pertama, konfigurasi telah berjaya dilakukan. Walau bagaimanapun, semasa langkah kedua, banyak amaran dan ralat muncul. Pada ralat ini, proses membuat berhenti:

/Users/ferguso/Downloads/php-5.4.45/ext/pcre/pcrelib/sljit/sljitNativeARM_64.c:312:2:
error: call to undeclared function 'sys_icache_invalidate'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        SLJIT_CACHE_FLUSH(code, code_ptr);

/Users/ferguso/Downloads/php-5.4.45/ext/pcre/pcrelib/sljit/sljitConfigInternal.h:301:2:
note: expanded from macro 'SLJIT_CACHE_FLUSH'
        sys_icache_invalidate((char*)(from), (char*)(to) - (char*)(from))

Bagaimana untuk menangani ralat ini dan memasang kod sumber versi PHP 5.4.45 pada MacOS Ventura M1 MacBook saya?

P粉006977956P粉006977956481 hari yang lalu567

membalas semua(1)saya akan balas

  • P粉418351692

    P粉4183516922023-07-18 16:15:42

    我比较了最新的代码。尝试在宏前面包含头文件。

    #include  /* +++ */
    #define SLJIT_CACHE_FLUSH(from, to) \
         sys_icache_invalidate((void*)(from), (size_t)((char*)(to) - (char*)(from))) 

    balas
    0
  • Batalbalas