歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> uclinux-2008R1-RC8(bf561)到VDSP5的移植(57)

uclinux-2008R1-RC8(bf561)到VDSP5的移植(57)

日期:2017/3/3 16:43:25   编辑:關於Linux

clinux-2008R1-RC8(bf561)到VDSP5的移植(57):_NSIG_WORDS_is_unsupported_size

在include/linux/signal.h中使用了一個函數_NSIG_WORDS_is_unsupported_size,其使用過程大致如下所示:

static inline int sigisemptyset(sigset_t *set)
{
     extern void _NSIG_WORDS_is_unsupported_size(void);
     switch (_NSIG_WORDS) {
     case 4:
         return (set->sig[3] | set->sig[2] |
              set->sig[1] | set->sig[0]) == 0;
     case 2:
         return (set->sig[1] | set->sig[0]) == 0;
     case 1:
         return set->sig[0] == 0;
     default:
         _NSIG_WORDS_is_unsupported_size();
         return 0;
     }
}

在這裡,_NSIG_WORDS的定義為:

#define _NSIG  64
#define _NSIG_BPW 32
#define _NSIG_WORDS  (_NSIG / _NSIG_BPW)

也就是編譯時常數,這樣在優化時並不會並產生代碼,也就沒有鏈接錯誤。但是在VDSP下調試編譯時會產生_NSIG_WORDS_is_unsupported_size符號未找到的鏈接錯誤。

為此,直接將之定義為:

inline void _NSIG_WORDS_is_unsupported_size() {panic("_NSIG_WORDS_is_unsupported_size()");}

Copyright © Linux教程網 All Rights Reserved