2013-11-27 51 views
4

我一直在試圖編譯包含libCurl的ucLinux,但是當試圖編譯libbzip2時,任何時候我都會在配置中包含curl curf。ucLinux libbzip2交叉編譯時的reloc類型錯誤

我正在交叉編譯coldfire 68K處理器。

它說重定位類型不支持PIC,但我不知道如何解決這個問題。我的印象是,所有的庫都需要編譯爲PIC。

這裏是輸出:

make[4]: Entering directory `/home/lantronix/linuxsdk/linux/lib/libbzip2' 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c blocksort.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c huffman.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c crctable.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c randtable.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c compress.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c decompress.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -fno-dwarf2-cfi-asm -msep-data -Dlinux -D__linux__ -Dunix -D__uClinux__ -c bzlib.c 
ucfront-gcc m68k-uclinux-gcc -mcpu=5208 -DCONFIG_COLDFIRE -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.3 blocksort.o huffman.o crctable.o randtable.o compress.o decompress.o bzlib.o 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
ERROR: reloc type R_68K_32 is not supported for PIC 
43 bad relocs 
/home/lantronix/linuxsdk/toolchains/freescale-coldfire-4.4/m68k-uclinux/bin/ld.real: warning: cannot find entry symbol _start; defaulting to 00000000 
collect2: ld returned 1 exit status 
make[4]: *** [all] Error 1 
make[4]: Leaving directory `/home/lantronix/linuxsdk/linux/lib/libbzip2' 
make[3]: *** [libbzip2] Error 2 
make[3]: Leaving directory `/home/lantronix/linuxsdk/linux/lib' 
make[2]: *** [all] Error 2 
make[2]: Leaving directory `/home/lantronix/linuxsdk/linux/lib' 
make[1]: *** [subdirs] Error 1 
make[1]: Leaving directory `/home/lantronix/linuxsdk/linux' 
make: *** [build] Error 2 
+0

您是否嘗試過手動指定'-fPIC'?整個構建需要它或需要沒有它 - 你不能混合。 – lynxlynxlynx

+0

嘗試在沒有-fPIC的情況下重新編譯...(也請通知我@因爲我沒有手動檢查答案) – user2284570

回答

0

我發現敲除-msep-data標誌(或將-mno-sep-data後話),使這些警告消失。從GCC doc page

生成代碼,允許所述數據段以位於從文本段存儲器中的不同 區域。這允許 在沒有虛擬內存管理的環境中就地執行。 該選項意味着-fPIC。

我也發現-fPIC-fno-PIC沒有效果。