2015-11-18 33 views
2

我試圖爲powerpc freescale評估板交叉編譯glibc-2.18。錯誤不支持調用匯編系統調用

在構建的一個階段我得到以下錯誤:

glibc 
Failed: 
../sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Assembler messages: 
../sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S:40: Error: unsupported relocation against swapcontext 
make[3]: *** [/home/user/Desktop/SmoothWall/bcutm/distrib/build/sources/glibc/glibc-2.18-compile/stdlib/setcontext.o] Error 1 
make[3]: Leaving directory /home/user/Desktop/SmoothWall/bcutm/distrib/build/sources/glibc/glibc-2.18/stdlib' 
make[2]: *** [stdlib/subdir_lib] Error 2 
make[2]: Leaving directory `/home/user/Desktop/SmoothWall/bcutm/distrib/build/sources/glibc/glibc-2.18' 
make[1]: *** [all] Error 2 
make[1]: Leaving directory `/home/user/Desktop/SmoothWall/bcutm/distrib/build/sources/glibc/glibc-2.18-compile' 
+0

你可能在glibc郵件列表上運氣更好。 –

回答

3

SYS_ify(swapcontext)宏應該評估爲__NR_swapcontext,這對於swapcontext系統調用的數量。

__NR_swapcontext是一個宏,而不是一個變量名 - 所以它應該由預處理器解決(見asm/unistd.h)。看起來你沒有爲此定義,所以它沒有被預處理到系統調用號,所以給你留下了一個未解決的變量名。

所以,你的問題是__NR_swapcontext的缺失定義,它應該由glibc正在編譯的內核頭文件提供。你有正確的內核頭文件嗎?

由於swapcontext是一個powerpc專用的系統調用,因此您可能試圖將glibc編譯爲您的生成機器的頭文件。