1 |
Hi! |
2 |
|
3 |
Hmm... I think somebody else has to help you... |
4 |
All I know that floating point ninstructions on ARM are a bit tricky. |
5 |
The core doesn't support that, but there is an optional co-processor. |
6 |
And even if the co-processor is not there, there are two ways to emulate |
7 |
it in software. Unfortunately the way floating point operations are |
8 |
handled must be specified at compile time, and must match in every |
9 |
application/lib... and that's the problem here. I recon there is a flag, |
10 |
-mfpu=vfp which controll the floating point instructions. It seems |
11 |
uclibc and gcc was built with different flags... so probably you have to |
12 |
rebuild one of them.... |
13 |
Or maybe you are using the wrong uclibc lib? |
14 |
|
15 |
/Pal Szasz |
16 |
|
17 |
Jean-Claude Gervais wrote: |
18 |
> Thank you, Pal! |
19 |
> |
20 |
> That did indeed help; by putting an empty file at |
21 |
> |
22 |
> /usr/arm-softfloat-linux-uclibc/usr/include/asm/page.h |
23 |
> |
24 |
> I was able to compile, however, now the link fails. |
25 |
> |
26 |
> I think it might be something to do with my USE flags? |
27 |
> |
28 |
> Anyone know? |
29 |
> |
30 |
> [...] |
31 |
> rm -f libc.a shared_libc.a |
32 |
> objs=`cat obj.*` ; \ |
33 |
> arm-softfloat-linux-uclibc-ar cr libc.a $objs && \ |
34 |
> arm-softfloat-linux-uclibc-ar dN 2 libc.a $objs && \ |
35 |
> arm-softfloat-linux-uclibc-ar dN 2 libc.a $objs |
36 |
> arm-softfloat-linux-uclibc-ar cr libc.a obj.signal |
37 |
> arm-softfloat-linux-uclibc-ar cr libc.a obj.string.generic |
38 |
> arm-softfloat-linux-uclibc-ar cr libc.a obj.string.arm |
39 |
> arm-softfloat-linux-uclibc-ar cr libc.a obj.string |
40 |
> arm-softfloat-linux-uclibc-ar cr libc.a obj.sysdeps.common |
41 |
> arm-softfloat-linux-uclibc-ar cr libc.a obj.sysdeps.arm |
42 |
> cp libc.a shared_libc.a |
43 |
> arm-softfloat-linux-uclibc-ranlib libc.a |
44 |
> arm-softfloat-linux-uclibc-ld -EL -shared --warn-common --warn-once -z |
45 |
> combreloc -z defs -s -z relro -soname=libc.so.0 -o libuClibc-0.9.28.so |
46 |
> \ |
47 |
> --whole-archive shared_libc.a \ |
48 |
> ../libc/misc/internals/interp.o --no-whole-archive \ |
49 |
> -init |
50 |
> __uClibc_init ../lib/ld-uClibc.so.0 /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a |
51 |
> ../lib/ld-uClibc.so.0: warning: multiple common of `__libc_stack_end' |
52 |
> shared_libc.a(__uClibc_main.o): warning: previous common is here |
53 |
> arm-softfloat-linux-uclibc-ld: |
54 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_udivsi3.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
55 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
56 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_udivsi3.o) |
57 |
> arm-softfloat-linux-uclibc-ld: |
58 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_divsi3.o) |
59 |
> uses VFP instructions, whereas libuClibc-0.9.28.so does not |
60 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
61 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_divsi3.o) |
62 |
> arm-softfloat-linux-uclibc-ld: |
63 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_umodsi3.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
64 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
65 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_umodsi3.o) |
66 |
> arm-softfloat-linux-uclibc-ld: |
67 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_modsi3.o) |
68 |
> uses VFP instructions, whereas libuClibc-0.9.28.so does not |
69 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
70 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_modsi3.o) |
71 |
> arm-softfloat-linux-uclibc-ld: |
72 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_dvmd_lnx.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
73 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
74 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_dvmd_lnx.o) |
75 |
> arm-softfloat-linux-uclibc-ld: |
76 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_addsubdf3.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
77 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
78 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_addsubdf3.o) |
79 |
> arm-softfloat-linux-uclibc-ld: |
80 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_muldivdf3.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
81 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
82 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_muldivdf3.o) |
83 |
> arm-softfloat-linux-uclibc-ld: |
84 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_cmpdf2.o) |
85 |
> uses VFP instructions, whereas libuClibc-0.9.28.so does not |
86 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
87 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_cmpdf2.o) |
88 |
> arm-softfloat-linux-uclibc-ld: |
89 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_fixunsdfsi.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
90 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
91 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_fixunsdfsi.o) |
92 |
> arm-softfloat-linux-uclibc-ld: |
93 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_truncdfsf2.o) uses VFP instructions, whereas libuClibc-0.9.28.so does not |
94 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
95 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_truncdfsf2.o) |
96 |
> arm-softfloat-linux-uclibc-ld: |
97 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_divdi3.o) |
98 |
> uses VFP instructions, whereas libuClibc-0.9.28.so does not |
99 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
100 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_divdi3.o) |
101 |
> arm-softfloat-linux-uclibc-ld: |
102 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_moddi3.o) |
103 |
> uses VFP instructions, whereas libuClibc-0.9.28.so does not |
104 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
105 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_moddi3.o) |
106 |
> arm-softfloat-linux-uclibc-ld: |
107 |
> ERROR: /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_clz.o) |
108 |
> uses VFP instructions, whereas libuClibc-0.9.28.so does not |
109 |
> arm-softfloat-linux-uclibc-ld: failed to merge target specific data of |
110 |
> file /usr/lib/gcc/arm-softfloat-linux-uclibc/4.1.2/libgcc.a(_clz.o) |
111 |
> |
112 |
> |
113 |
> On Wed, 2007-10-31 at 19:28 +0100, Pal Szasz wrote: |
114 |
> |
115 |
>> Hi! |
116 |
>> |
117 |
>> I simply created an empty page.h file :-) |
118 |
>> |
119 |
>> Jean-Claude Gervais wrote: |
120 |
>> |
121 |
>>> Hello, |
122 |
>>> |
123 |
>>> I'm getting a compilation error trying to build uClibc on an x86 |
124 |
>>> host for an ARM host using crossdev 0.9.18-r4: |
125 |
>>> |
126 |
>>> UCLIBC_CPU="ARM920T" USE="-*" crossdev -v -S --ex-gdb --target |
127 |
>>> arm-softfloat-linux-uclibc |
128 |
>>> |
129 |
>>> [...] |
130 |
>>> |
131 |
>>> arm-softfloat-linux-uclibc-strip -x -R .note -R .comment brk.o |
132 |
>>> ioperm.c:47:22: error: asm/page.h: No such file or directory |
133 |
>>> |
134 |
>>> |
135 |
>>> * Host Portage ARCH: x86 |
136 |
>>> * Target Portage ARCH: arm |
137 |
>>> * Target System: arm-softfloat-linux-uclibc |
138 |
>>> * Stage: 4 (C/C++ compiler) |
139 |
>>> |
140 |
>>> * binutils: binutils-[stable] |
141 |
>>> * gcc: gcc-[stable] |
142 |
>>> * headers: linux-headers-[stable] |
143 |
>>> * libc: uclibc-[stable] |
144 |
>>> * Extra: gdb: DO IT |
145 |
>>> |
146 |
>>> * PORTDIR_OVERLAY: /usr/local/portage |
147 |
>>> * PORT_LOGDIR: /var/log/portage |
148 |
>>> * |
149 |
>>> PKGDIR: /usr/portage/packages/cross/arm-softfloat-linux-uclibc |
150 |
>>> * PORTAGE_TMPDIR: /var/tmp/cross/arm-softfloat-linux-uclibc |
151 |
>>> _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - |
152 |
>>> _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - |
153 |
>>> _ - ~ - |
154 |
>>> Portage 2.1.3.16 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, |
155 |
>>> 2.6.22-gentoo-r5 i686) |
156 |
>>> ================================================================= |
157 |
>>> System uname: 2.6.22-gentoo-r5 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz |
158 |
>>> Timestamp of tree: Tue, 30 Oct 2007 17:00:10 +0000 |
159 |
>>> distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) |
160 |
>>> [enabled] |
161 |
>>> app-shells/bash: 3.2_p17 |
162 |
>>> dev-lang/python: 2.4.4-r6 |
163 |
>>> dev-python/pycrypto: 2.0.1-r6 |
164 |
>>> sys-apps/baselayout: 1.12.9-r2 |
165 |
>>> sys-apps/sandbox: 1.2.18.1-r2 |
166 |
>>> sys-devel/autoconf: 2.13, 2.61-r1 |
167 |
>>> sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 |
168 |
>>> sys-devel/binutils: 2.18-r1 |
169 |
>>> sys-devel/gcc-config: 1.3.16 |
170 |
>>> sys-devel/libtool: 1.5.24 |
171 |
>>> virtual/os-headers: 2.6.22-r2 |
172 |
>>> |
173 |
>>> Is there a fix for this? |
174 |
>>> Thank you |
175 |
>>> |
176 |
>>> |
177 |
>>> |
178 |
> |
179 |
> |
180 |
|
181 |
-- |
182 |
gentoo-embedded@g.o mailing list |