CMakeLists.txt と Makefile ファイル内の CFLAGS コンパイルオプションを変更して、x86 から YiTian ECS インスタンスへビルドを移行します。
C と C++ における -mabi=lp64 オプションの追加
x86 のオプションである -m64 は、コードを 64 ビットとしてコンパイルしますが、YiTian ECS インスタンスではサポートされていません。-m64 を -mabi=lp64 に置き換えます。
C と C++ における -fsigned-char コンパイルオプションの強制追加
x86 では、デフォルトの char 型は signed char です。YiTian ECS インスタンスでは、デフォルトは unsigned char です。移行中に signed char を強制的に適用するには、-fsigned-char を追加します。
C と C++ におけるプロセッサアーキテクチャオプションの指定
x86 の march mtune mcpu オプションを -march=armv8-a+crc+sve2 -mcpu=neoverse-n1 に置き換えて、YiTian 命令セット用に最適化されたバイナリを生成します。
例
x86 から YiTian ECS インスタンスへの移行前後における CFLAGS:
変更前のコード:
CFLAGS=-g3 -O2 -DNDEBUG -m64 -Wall -march=corei7
変更後のコード:
# GNU Compiler Collection (GCC) 10 (Neoverse N1 向け)
CFLAGS=-g3 -O2 -DNDEBUG -mabi=lp64 -Wall -march=armv8-a+crc+sve2 -mcpu=neoverse-n1 -fsigned-char
# GCC 11 (Neoverse N2 向け)
CFLAGS=-g3 -O2 -DNDEBUG -mabi=lp64 -Wall -march=armv8-a+crc+sve2 -mcpu=neoverse-n2 -fsigned-char