3 Date: 2003/11/08 07:42:34
8 Joakim Tjernlund writes:
10 > Very interesting. Do you have any suggestions for how
11 > we could fix our powerpc shared library loader
13 Removing those instr. comes with a very big performance
14 penalty. To flush the dcache you will have read up to 8KB
15 dummy data and to invalidate the icache you will have to
16 execute up to 16KB nops. I don't know of any other way from
19 hmm, actually I think it will work reliable to perform a
20 store to the same page(s) as the dcbst/icbi will act on. That
21 way you will make the DTLB Error happen(if any) prior to the
22 dcbst/icbi. The worst thing that can happen then is a regular
23 DTLB Miss and that works for dcbst/icbi.
25 You will have to lookout for if dcbst/icbi crosses a page
26 boundary. Then you will have to perform a store to both
31 # And again later writes:
35 I think I know what the problem is. The
36 PPC_DCBST;PPC_SYNC;PPC_ICBI;PPC_ISYNC sequence is executed
37 even if no modification has been done i some cases:
39 _dl_linux_resolver(), the last else has no store for insns[0].
40 these is a insns[1] = OPCODE_B(delta - 4) that
41 does not have a PPC_DCBST.
43 _dl_do_lazy_reloc(), for R_PPC_NONE there is no store.
44 for R_PPC_JMP_SLOT there is a
45 insns[1] = OPCODE_B(delta)that does not
48 _dl_do_reloc(), for R_PPC_COPY there is no store.
49 for R_PPC_JMP_SLOT there is a
50 reloc_addr[1] = OPCODE_B(delta) that does not
53 _dl_init_got(), I THINK that the
62 is off a bit. The address range does not match the sum
63 of the plt[] and tramp[] address range.
68 # And then later added the comment:
71 I think that the tramp[] part should be included in the
72 PPC_DCBST/PPC_ICBI sequence. Then you have to add entries for
73 plt+12 and plt+16. If the tramp[] part should be excluded,
79 ldso/ldso/powerpc/elfinterp.c:1.24->1.25
83 Date: 2003/11/08 08:06:38
88 For now, disable the iconv utility
92 libc/misc/wchar/Makefile:1.7->1.8
96 Date: 2003/11/08 08:09:02
101 kill mention of the wrapper
104 libc/sysdeps/linux/i960/README:1.2->1.3
106 ---------------------
108 Date: 2003/11/08 08:48:31
113 Update docs in preparation for release
117 Changelog.full:1.14->1.15
120 docs/Glibc_vs_uClibc_Differences.txt:1.13->1.14
121 docs/uClibc_vs_SuSv3.txt:1.3->1.4
122 docs/uclibc.org/index.html:1.74->1.75
123 docs/uclibc.org/old-news.html:1.15->1.16
124 docs/uclibc.org/uClibc-apps.html:1.23->1.24
126 ---------------------
128 Date: 2003/11/08 08:58:06
133 hide the wrapper in with the debian stuff
136 debian/gcc-uClibc/.cvsignore:INITIAL->1.1
137 debian/gcc-uClibc/Makefile:INITIAL->1.1
138 debian/gcc-uClibc/gcc-uClibc.c:INITIAL->1.1
140 ---------------------
142 Date: 2003/11/08 20:33:49
147 Joakim Tjernlund writes:
149 Oops, found another ppc 8xx bug.
150 8xx CPUs may need this as well to work:
153 ldso/ldso/powerpc/ld_sysdep.h:1.4->1.5
155 ---------------------
157 Date: 2003/11/08 20:41:24
162 Sigh. I can't type this morning.
165 ldso/ldso/powerpc/ld_sysdep.h:1.5->1.6
167 ---------------------
169 Date: 2003/11/08 21:21:09
174 Darn. Fix compilation for soft-float, which I inadvertantly
175 broke a couple of days ago. :-(
178 libc/sysdeps/linux/alpha/Makefile:1.9->1.10
179 libc/sysdeps/linux/arm/Makefile:1.49->1.50
180 libc/sysdeps/linux/cris/Makefile:1.10->1.11
181 libc/sysdeps/linux/e1/Makefile:1.4->1.5
182 libc/sysdeps/linux/h8300/Makefile:1.9->1.10
183 libc/sysdeps/linux/i386/Makefile:1.62->1.63
184 libc/sysdeps/linux/i960/Makefile:1.6->1.7
185 libc/sysdeps/linux/m68k/Makefile:1.30->1.31
186 libc/sysdeps/linux/microblaze/Makefile:1.3->1.4
187 libc/sysdeps/linux/mips/Makefile:1.33->1.34
188 libc/sysdeps/linux/powerpc/Makefile:1.26->1.27
189 libc/sysdeps/linux/sh/Makefile:1.27->1.28
190 libc/sysdeps/linux/sh64/Makefile:1.3->1.4
191 libc/sysdeps/linux/sparc/Makefile:1.17->1.18
192 libc/sysdeps/linux/v850/Makefile:1.16->1.17
194 ---------------------
196 Date: 2003/11/10 18:42:30
201 Strip off quotes from TARGET_ARCH
204 Rules.mak:1.152->1.153
206 ---------------------
208 Date: 2003/11/11 08:59:53
213 Another cleanup patch from Joakim Tjernlund:
217 Back at work. Here is a patch that fixes the 2 errors I found yesterday.
218 I have excluded the "data_words[index]" part for now.
221 ldso/ldso/powerpc/elfinterp.c:1.25->1.26
223 ---------------------
225 Date: 2003/11/11 20:49:46
230 Stefan Allius writes:
234 to compile the new uClibc release for a SH3 we need some little
237 First I fix the crt[in].S files, so we can use them for big endian and
238 little endian targets.
241 libc/sysdeps/linux/sh/crti.S:1.3->1.4
242 libc/sysdeps/linux/sh/crtn.S:1.3->1.4
244 ---------------------
246 Date: 2003/11/11 20:52:14
251 Stefan Allius writes:
253 Another little patch fix the configuration for the SH3 targets. The SH3 has
254 no FPU, but our ldso runs fine on a SH3 target. (I think the
255 ldso should also run on a SH2 target, so you might want to enable the ldso
256 for SH2 targets too. But I can't test it, since I have no such a system) :
259 extra/Configs/Config.sh:1.39->1.40
261 ---------------------
263 Date: 2003/11/11 21:50:11
268 Joakim Tjernlund writes:
270 Comparing glibc with uClibc makes me think that the delta calculations are
271 wrong here. Comparing some more I still think there are a
272 data_words[index] assignments missing. Here is a path that has both the
273 data_words[index] and the above delta calclations.
275 This also fixes a terribly obvious bug, also spotted by Joakim, which Erik
276 introduced when he copied things from the i386 ldso code.
278 With this patch applied, things now seem to be working perfectly!
281 ldso/ldso/powerpc/elfinterp.c:1.26->1.27
283 ---------------------
285 Date: 2003/11/11 22:54:43
290 Protect some header inclusions.
293 libc/sysdeps/linux/common/bits/uClibc_locale.h:1.10->1.11
295 ---------------------
297 Date: 2003/11/11 23:40:10
302 It seems that the powerpc ldso doesn't like -O0
305 ldso/ldso/Makefile:1.48->1.49
307 ---------------------
309 Date: 2003/11/11 23:44:13
314 Fix for the last "fix".
317 libc/sysdeps/linux/common/bits/uClibc_locale.h:1.11->1.12
319 ---------------------
321 Date: 2003/11/12 08:21:58
326 Fix a stupid potential segfault
331 ---------------------
333 Date: 2003/11/12 10:19:32
341 Rules.mak:1.153->1.154
343 ---------------------
345 Date: 2003/11/12 10:50:18
350 Revert the stupid quoting junk I inadvertantly committed
353 Rules.mak:1.154->1.155
355 ---------------------
357 Date: 2003/11/12 20:50:02
362 Add support for missing ntp_gettime and ntp_adjtime
365 libc/sysdeps/linux/common/Makefile:1.93->1.94
366 libc/sysdeps/linux/common/ntp_gettime.c:INITIAL->1.1
367 libc/sysdeps/linux/common/syscalls.c:1.119->1.120
369 ---------------------
371 Date: 2003/11/13 09:04:21
376 Teach the install_dev target to behave itself and install
377 the correct stuff with the correct names, and not install
378 yet another set of shared libs in the wrong place
382 Makefile:1.236->1.237
384 ---------------------
386 Date: 2003/11/13 09:16:37
391 Kill off these headers, which are supposed to be part of binutils-dev,
395 include/ansidecl.h:1.1->1.2(DEAD)
396 include/symcat.h:1.1->1.2(DEAD)
398 ---------------------
400 Date: 2003/11/13 10:18:58
405 Update the debian packaging for use in a standalone uClibc
406 system, rather than being a subordinate lib under a glibc
411 debian/README.Debian:1.5->1.6(DEAD)
412 debian/changelog:1.16->1.17
413 debian/config:1.1->1.2
414 debian/control:1.15->1.16
415 debian/control.in:1.12->1.13(DEAD)
416 debian/copyright:1.3->1.4
418 debian/fixlinks:1.2->1.3(DEAD)
419 debian/ldconfig.1:INITIAL->1.1
420 debian/ldd.1:INITIAL->1.1
421 debian/libuclibc-dev.files:1.1->1.2(DEAD)
422 debian/libuclibc0.files:1.1->1.2(DEAD)
423 debian/libuclibc0.postinst:1.2->1.3(DEAD)
424 debian/libuclibc0.shlibs:1.5->1.6(DEAD)
425 debian/mksnapshot:1.13->1.14(DEAD)
426 debian/rules:1.26->1.27
427 debian/uclibc-dev.files:INITIAL->1.1
428 debian/uclibc-gcc.1:1.1->1.2(DEAD)
429 debian/uclibc-gcc.dirs:1.1->1.2(DEAD)
430 debian/uclibc-ldconfig.1:1.1->1.2(DEAD)
431 debian/uclibc-ldd.1:1.2->1.3(DEAD)
432 debian/uclibc-readelf.1:1.1->1.2(DEAD)
433 debian/uclibc-toolchain.files:1.1->1.2(DEAD)
434 debian/uclibc.files:INITIAL->1.1
435 debian/uclibc.postinst:INITIAL->1.1
436 debian/uclibc.shlibs:INITIAL->1.1
437 debian/gcc-uClibc/.cvsignore:1.1->1.2(DEAD)
438 debian/gcc-uClibc/Makefile:1.1->1.2(DEAD)
439 debian/gcc-uClibc/gcc-uClibc.c:1.1->1.2(DEAD)
441 ---------------------
443 Date: 2003/11/13 12:30:10
448 Joakim Tjernlund writes:
450 I think I messed up a little in my latest patch to Erik. Can you try
451 this on top of CVS(which I think you have already)
459 I just saw something that might be a problem.
461 The "delta" variable is signed and
462 the "delta" calculations, such as delta = PLT_LONGBRANCH_ENTRY_WORDS*4 - (insn_addr-plt_addr+4),
463 are supposed to be unsigned.
468 ldso/ldso/powerpc/elfinterp.c:1.27->1.28