ライブラリの仕様(AArch64)
exeGCC for SOLID s006 (AArch64)ライブラリ仕様
ライブラリの共通設定
全てのライブラリは以下の設定でビルドされています。 設定が異なるユーザープログラムとライブラリをリンクした際の動作は保証されません。
char
型は signed。(-fsigned-char
)C は
gnu11
、 C++ はgnu++14
規格。
C11/C++14 標準関数サポート
ライブラリとスタートアップ
初期の A53 エラッタ未対応です。
-mfix-cortex-a53-835769
と-mfix-cortex-a53-843419
オプションは付いてません。LP64 ABI と unaligned data access 設定のみサポート。
large code model
デフォルトの
-mcmodel=small
では、コードとデータを 4GB 範囲に収める必要がありますが、 large は常にフルアドレスで参照するため、無制限です。そのため若干のオーバーヘッドがあります。
libc と libm は NetBSD-9.1 ベース
注釈
BSD 独自の関数はサポート範囲外です。ヘッダには存在しますが、実体が存在しない関数も多数あります。
KMCによる標準関数の実装
abort()
,exit()
,perror()
,setjmp()
,longjmp()
,strerror()
,strerror_r()
,signal()
,raise()
time.h
clock()
,difftime()
,mktime()
,time()
,asctime()
,ctime()
,ctime_r()
,gmtime()
,localtime()
,localtime_r()
,strftime()
time_t
は 64 bit です。clock()
はダミー実装です。初回の呼び出しは必ず 0 になり、2 回目以降は 10msec 精度カウンタの前回呼び出し時との差分を返します。time_t
はうるう秒未考慮です。
ロケールは
"C"
のみサポートsetlocale()
は常に"C"
を返し、一切 current locale を変更しません。*_l
(locale) 関数は、対応する_l
の無い関数と同じ挙動となります。
OS の機能を使用するような関数は、VLINK 有効時のみサポート
signal.h
はダミー関数です。signal()
,raise()
__SOFTFP__
時fenv.h
feraiseexcept()
は例外を発生させません。stdio.h
のprintf()
やファイル関係の関数、tmpnam()
など。stdlib.h
のgetenv()
,setenv()
など。system()
は未サポート。time.h
のclock()
,time()
,utime()
以下の非標準関数(KMC による実装)
rename()
,getcwd()
,getwd()
,open()
,creat()
,close()
,lseek()
,read()
,write()
,unlink()
,tell()
,dup()
,dup2()
,access()
,chdir()
,rmdir()
,findfirst()
,findnext()
,stat()
,fstat()
,lstat()
,mkdir()
,chmod()
,mktemp()
,sleep()
,usleep()
stat()
,fstat()
,lstat()
,utime()
の制限MS-DOS Data and Time (
FILETIME
) を使用しているので、保証されるのは 1980/1/1-2107/12/31 の範囲です。usleep()
の制限millisecond 精度です。
未サポートの機能
GCC の
float.h
の制限でFLT_ROUNDS
は常に 1 (nearest) となります。fenv.h
のfegetround()
で現行の丸めモードを取得してください。SVE 拡張
long double
math.h
,complex.h
ヘッダの*l
関数など。例:
long double sinl(long double x)
nexttoward()
,nexttowardf()
,nexttowardl()
C11
uchar.h
time.h
struct timespec
,timespec_get()
stdio.h
fopen()
mode"x"
Remove
gets()
Annex * [Optional]
C++11
random
ヘッダrandom_device
マルチスレッド
C11
stdatomic.h
,thread.h
ヘッダ [Optional]C++11
thread
,mutex
,future
,condition_variable
ヘッダ。TLS (Thread Local Storage)
GCC 拡張の
__thread
, C11 の_Thread_local
, C++11 のthread_local
キーワード。
exeGCC for SOLID s005 (AArch64)ライブラリ仕様
ライブラリの共通設定
全てのライブラリは以下の設定でビルドされています。 設定が異なるユーザープログラムとライブラリをリンクした際の動作は保証されません。
char
型は signed。(-fsigned-char
)C は
gnu11
、 C++ はgnu++14
規格。
C11/C++14 標準関数サポート
ライブラリとスタートアップ
初期の A53 エラッタ未対応です。
-mfix-cortex-a53-835769
と-mfix-cortex-a53-843419
オプションは付いてません。LP64 ABI と unaligned data access 設定のみサポート。
large code model
デフォルトの
-mcmodel=small
では、コードとデータを 4GB 範囲に収める必要がありますが、 large は常にフルアドレスで参照するため、無制限です。そのため若干のオーバーヘッドがあります。
libc と libm は NetBSD-7.0 ベース
注釈
非標準の関数や BSD 由来の関数は、ヘッダには存在しますが、実体が存在しない関数も多数あります。
KMCによる標準関数の実装
abort()
,exit()
,perror()
,setjmp()
,longjmp()
,strerror()
,strerror_r()
,signal()
,raise()
time.h
clock()
,difftime()
,mktime()
,time()
,asctime()
,ctime()
,ctime_r()
,gmtime()
,localtime()
,localtime_r()
,strftime()
time.h
の仕様time_t
は 64 bit です。clock()
はダミー実装です。初回の呼び出しは必ず 0 になり、2 回目以降は 10msec 精度カウンタの前回呼び出し時との差分を返します。time_t
はうるう秒未考慮です。
ロケールは
"C"
のみサポート*_l
(locale) 関数は、対応する_l
の無い関数と同じ挙動となります。
OS の機能を使用するような関数は、VLINK 有効時のみサポート
signal.h
はダミー関数です。signal()
,raise()
__SOFTFP__
時fenv.h
feraiseexcept()
は例外を発生させません。stdio.h
のprintf()
やファイル関係の関数、tmpnam()
など。stdlib.h
のgetenv()
,setenv()
など。system()
は未サポート。time.h
のclock()
,time()
,utime()
以下の非標準関数(KMC による実装)
rename()
,getcwd()
,getwd()
,open()
,creat()
,close()
,lseek()
,read()
,write()
,unlink()
,tell()
,dup()
,dup2()
,access()
,chdir()
,rmdir()
,findfirst()
,findnext()
,stat()
,fstat()
,lstat()
,mkdir()
,chmod()
,mktemp()
,sleep()
,usleep()
stat()
,fstat()
,lstat()
,utime()
の制限MS-DOS Data and Time (
FILETIME
) を使用しているので、保証されるのは 1980/1/1-2107/12/31 の範囲です。usleep()
の制限millisecond 精度です。
未サポートの機能
long double
math.h
,complex.h
ヘッダの*l
関数など。例:
long double sinl(long double x)
nexttoward()
,nexttowardf()
,nexttowardl()
C99
math.h
fma()
,fmaf()
,fmal()
C11
uchar.h
time.h
struct timespec
,timespec_get()
stdio.h
fopen()
mode"x"
Remove
gets()
Annex * [Optional]
C++11
random
ヘッダrandom_device
マルチスレッド
C11
stdatomic.h
,thread.h
ヘッダ [Optional]C++11
thread
,mutex
,future
,condition_variable
ヘッダ。TLS (Thread Local Storage)
GCC 拡張の
__thread
, C11 の_Thread_local
, C++11 のthread_local
キーワード。