• 作成:

nvidia-cuda-sdk-9.0.176がglibc-2.26-r5でビルドできない問題の解決方法

nvidia-cuda-sdk-9.0.176をglibc-2.26-r5環境でビルドしようとすると,

/usr/include/bits/floatn.h(61): error: invalid argument to attribute "__mode__"
/usr/include/bits/floatn.h(73): error: identifier "__float128" is undefined

のようなビルドエラーになります.

これを正攻法で解決するのは無理そうだったので, /usr/include/bits/floatn.hの冒頭に書いてある

#if (defined __x86_64__							\
     ? __GNUC_PREREQ (4, 3)						\
     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
# define __HAVE_FLOAT128 1
#else
# define __HAVE_FLOAT128 0
#endif

# define __HAVE_FLOAT128 0

に置換しました.

junkdrawer overlayだとnvidia-cuda-sdk-9.1.85を配布しているようなので, もしかしたらそちらだと問題ないのかもしれません. そっちが正攻法なのかも.

どうせそのうちgentooの公式リポジトリにもcuda 9.1が載ると思うので, 今回はバッドノウハウを使いました.