--------------------- PatchSet 2849 Date: 2003/11/08 07:42:34 Author: andersen Branch: HEAD Tag: (none) Log: Joakim Tjernlund writes: > Very interesting. Do you have any suggestions for how > we could fix our powerpc shared library loader Removing those instr. comes with a very big performance penalty. To flush the dcache you will have read up to 8KB dummy data and to invalidate the icache you will have to execute up to 16KB nops. I don't know of any other way from user space. hmm, actually I think it will work reliable to perform a store to the same page(s) as the dcbst/icbi will act on. That way you will make the DTLB Error happen(if any) prior to the dcbst/icbi. The worst thing that can happen then is a regular DTLB Miss and that works for dcbst/icbi. You will have to lookout for if dcbst/icbi crosses a page boundary. Then you will have to perform a store to both pages. Jocke # And again later writes: Hi again I think I know what the problem is. The PPC_DCBST;PPC_SYNC;PPC_ICBI;PPC_ISYNC sequence is executed even if no modification has been done i some cases: _dl_linux_resolver(), the last else has no store for insns[0]. these is a insns[1] = OPCODE_B(delta - 4) that does not have a PPC_DCBST. _dl_do_lazy_reloc(), for R_PPC_NONE there is no store. for R_PPC_JMP_SLOT there is a insns[1] = OPCODE_B(delta)that does not have a PPC_DCBST. _dl_do_reloc(), for R_PPC_COPY there is no store. for R_PPC_JMP_SLOT there is a reloc_addr[1] = OPCODE_B(delta) that does not have a PPC_DCBST. _dl_init_got(), I THINK that the PPC_DCBST(plt); PPC_DCBST(plt+4); PPC_DCBST(plt+8); PPC_SYNC; PPC_ICBI(plt); PPC_ICBI(plt+4); PPC_ICBI(plt+8); PPC_ISYNC; is off a bit. The address range does not match the sum of the plt[] and tramp[] address range. Jocke # And then later added the comment: I think that the tramp[] part should be included in the PPC_DCBST/PPC_ICBI sequence. Then you have to add entries for plt+12 and plt+16. If the tramp[] part should be excluded, then all is well. Jocke Members: ldso/ldso/powerpc/elfinterp.c:1.24->1.25 --------------------- PatchSet 2850 Date: 2003/11/08 08:06:38 Author: andersen Branch: HEAD Tag: (none) Log: For now, disable the iconv utility Members: Makefile:1.235->1.236 libc/misc/wchar/Makefile:1.7->1.8 --------------------- PatchSet 2851 Date: 2003/11/08 08:09:02 Author: andersen Branch: HEAD Tag: (none) Log: kill mention of the wrapper Members: libc/sysdeps/linux/i960/README:1.2->1.3 --------------------- PatchSet 2852 Date: 2003/11/08 08:48:31 Author: andersen Branch: HEAD Tag: (none) Log: Update docs in preparation for release Members: Changelog:1.20->1.21 Changelog.full:1.14->1.15 INSTALL:1.4->1.5 README:1.18->1.19 docs/Glibc_vs_uClibc_Differences.txt:1.13->1.14 docs/uClibc_vs_SuSv3.txt:1.3->1.4 docs/uclibc.org/index.html:1.74->1.75 docs/uclibc.org/old-news.html:1.15->1.16 docs/uclibc.org/uClibc-apps.html:1.23->1.24 --------------------- PatchSet 2853 Date: 2003/11/08 08:58:06 Author: andersen Branch: HEAD Tag: uClibc_0_9_22 Log: hide the wrapper in with the debian stuff Members: debian/gcc-uClibc/.cvsignore:INITIAL->1.1 debian/gcc-uClibc/Makefile:INITIAL->1.1 debian/gcc-uClibc/gcc-uClibc.c:INITIAL->1.1 --------------------- PatchSet 2854 Date: 2003/11/08 20:33:49 Author: andersen Branch: HEAD Tag: (none) Log: Joakim Tjernlund writes: Oops, found another ppc 8xx bug. 8xx CPUs may need this as well to work: Members: ldso/ldso/powerpc/ld_sysdep.h:1.4->1.5 --------------------- PatchSet 2855 Date: 2003/11/08 20:41:24 Author: andersen Branch: HEAD Tag: (none) Log: Sigh. I can't type this morning. Members: ldso/ldso/powerpc/ld_sysdep.h:1.5->1.6 --------------------- PatchSet 2856 Date: 2003/11/08 21:21:09 Author: andersen Branch: HEAD Tag: (none) Log: Darn. Fix compilation for soft-float, which I inadvertantly broke a couple of days ago. :-( Members: libc/sysdeps/linux/alpha/Makefile:1.9->1.10 libc/sysdeps/linux/arm/Makefile:1.49->1.50 libc/sysdeps/linux/cris/Makefile:1.10->1.11 libc/sysdeps/linux/e1/Makefile:1.4->1.5 libc/sysdeps/linux/h8300/Makefile:1.9->1.10 libc/sysdeps/linux/i386/Makefile:1.62->1.63 libc/sysdeps/linux/i960/Makefile:1.6->1.7 libc/sysdeps/linux/m68k/Makefile:1.30->1.31 libc/sysdeps/linux/microblaze/Makefile:1.3->1.4 libc/sysdeps/linux/mips/Makefile:1.33->1.34 libc/sysdeps/linux/powerpc/Makefile:1.26->1.27 libc/sysdeps/linux/sh/Makefile:1.27->1.28 libc/sysdeps/linux/sh64/Makefile:1.3->1.4 libc/sysdeps/linux/sparc/Makefile:1.17->1.18 libc/sysdeps/linux/v850/Makefile:1.16->1.17 --------------------- PatchSet 2857 Date: 2003/11/10 18:42:30 Author: andersen Branch: HEAD Tag: (none) Log: Strip off quotes from TARGET_ARCH Members: Rules.mak:1.152->1.153 --------------------- PatchSet 2858 Date: 2003/11/11 08:59:53 Author: andersen Branch: HEAD Tag: (none) Log: Another cleanup patch from Joakim Tjernlund: Hi again Back at work. Here is a patch that fixes the 2 errors I found yesterday. I have excluded the "data_words[index]" part for now. Members: ldso/ldso/powerpc/elfinterp.c:1.25->1.26 --------------------- PatchSet 2859 Date: 2003/11/11 20:49:46 Author: andersen Branch: HEAD Tag: (none) Log: Stefan Allius writes: Hello Erik, to compile the new uClibc release for a SH3 we need some little modifications: First I fix the crt[in].S files, so we can use them for big endian and little endian targets. Members: libc/sysdeps/linux/sh/crti.S:1.3->1.4 libc/sysdeps/linux/sh/crtn.S:1.3->1.4 --------------------- PatchSet 2860 Date: 2003/11/11 20:52:14 Author: andersen Branch: HEAD Tag: (none) Log: Stefan Allius writes: Another little patch fix the configuration for the SH3 targets. The SH3 has no FPU, but our ldso runs fine on a SH3 target. (I think the ldso should also run on a SH2 target, so you might want to enable the ldso for SH2 targets too. But I can't test it, since I have no such a system) : Members: extra/Configs/Config.sh:1.39->1.40 --------------------- PatchSet 2861 Date: 2003/11/11 21:50:11 Author: andersen Branch: HEAD Tag: (none) Log: Joakim Tjernlund writes: Comparing glibc with uClibc makes me think that the delta calculations are wrong here. Comparing some more I still think there are a data_words[index] assignments missing. Here is a path that has both the data_words[index] and the above delta calclations. This also fixes a terribly obvious bug, also spotted by Joakim, which Erik introduced when he copied things from the i386 ldso code. With this patch applied, things now seem to be working perfectly! Members: ldso/ldso/powerpc/elfinterp.c:1.26->1.27 --------------------- PatchSet 2862 Date: 2003/11/11 22:54:43 Author: mjn3 Branch: HEAD Tag: (none) Log: Protect some header inclusions. Members: libc/sysdeps/linux/common/bits/uClibc_locale.h:1.10->1.11 --------------------- PatchSet 2863 Date: 2003/11/11 23:40:10 Author: andersen Branch: HEAD Tag: (none) Log: It seems that the powerpc ldso doesn't like -O0 Members: ldso/ldso/Makefile:1.48->1.49 --------------------- PatchSet 2864 Date: 2003/11/11 23:44:13 Author: mjn3 Branch: HEAD Tag: (none) Log: Fix for the last "fix". Members: libc/sysdeps/linux/common/bits/uClibc_locale.h:1.11->1.12 --------------------- PatchSet 2865 Date: 2003/11/12 08:21:58 Author: andersen Branch: HEAD Tag: (none) Log: Fix a stupid potential segfault Members: utils/ldd.c:1.1->1.2 --------------------- PatchSet 2866 Date: 2003/11/12 10:19:32 Author: andersen Branch: HEAD Tag: (none) Log: Bump version number Members: Rules.mak:1.153->1.154 --------------------- PatchSet 2867 Date: 2003/11/12 10:50:18 Author: andersen Branch: HEAD Tag: (none) Log: Revert the stupid quoting junk I inadvertantly committed Members: Rules.mak:1.154->1.155 --------------------- PatchSet 2868 Date: 2003/11/12 20:50:02 Author: andersen Branch: HEAD Tag: (none) Log: Add support for missing ntp_gettime and ntp_adjtime Members: libc/sysdeps/linux/common/Makefile:1.93->1.94 libc/sysdeps/linux/common/ntp_gettime.c:INITIAL->1.1 libc/sysdeps/linux/common/syscalls.c:1.119->1.120 --------------------- PatchSet 2869 Date: 2003/11/13 09:04:21 Author: andersen Branch: HEAD Tag: (none) Log: Teach the install_dev target to behave itself and install the correct stuff with the correct names, and not install yet another set of shared libs in the wrong place -Erik Members: Makefile:1.236->1.237 --------------------- PatchSet 2870 Date: 2003/11/13 09:16:37 Author: andersen Branch: HEAD Tag: (none) Log: Kill off these headers, which are supposed to be part of binutils-dev, not part of uClibc. Members: include/ansidecl.h:1.1->1.2(DEAD) include/symcat.h:1.1->1.2(DEAD) --------------------- PatchSet 2871 Date: 2003/11/13 10:18:58 Author: andersen Branch: HEAD Tag: (none) Log: Update the debian packaging for use in a standalone uClibc system, rather than being a subordinate lib under a glibc based system. -Erik Members: debian/README.Debian:1.5->1.6(DEAD) debian/changelog:1.16->1.17 debian/config:1.1->1.2 debian/control:1.15->1.16 debian/control.in:1.12->1.13(DEAD) debian/copyright:1.3->1.4 debian/docs:1.3->1.4 debian/fixlinks:1.2->1.3(DEAD) debian/ldconfig.1:INITIAL->1.1 debian/ldd.1:INITIAL->1.1 debian/libuclibc-dev.files:1.1->1.2(DEAD) debian/libuclibc0.files:1.1->1.2(DEAD) debian/libuclibc0.postinst:1.2->1.3(DEAD) debian/libuclibc0.shlibs:1.5->1.6(DEAD) debian/mksnapshot:1.13->1.14(DEAD) debian/rules:1.26->1.27 debian/uclibc-dev.files:INITIAL->1.1 debian/uclibc-gcc.1:1.1->1.2(DEAD) debian/uclibc-gcc.dirs:1.1->1.2(DEAD) debian/uclibc-ldconfig.1:1.1->1.2(DEAD) debian/uclibc-ldd.1:1.2->1.3(DEAD) debian/uclibc-readelf.1:1.1->1.2(DEAD) debian/uclibc-toolchain.files:1.1->1.2(DEAD) debian/uclibc.files:INITIAL->1.1 debian/uclibc.postinst:INITIAL->1.1 debian/uclibc.shlibs:INITIAL->1.1 debian/gcc-uClibc/.cvsignore:1.1->1.2(DEAD) debian/gcc-uClibc/Makefile:1.1->1.2(DEAD) debian/gcc-uClibc/gcc-uClibc.c:1.1->1.2(DEAD) --------------------- PatchSet 2872 Date: 2003/11/13 12:30:10 Author: andersen Branch: HEAD Tag: (none) Log: Joakim Tjernlund writes: I think I messed up a little in my latest patch to Erik. Can you try this on top of CVS(which I think you have already) Jocke And later writes: Hi Erik I just saw something that might be a problem. The "delta" variable is signed and the "delta" calculations, such as delta = PLT_LONGBRANCH_ENTRY_WORDS*4 - (insn_addr-plt_addr+4), are supposed to be unsigned. Jocke Members: ldso/ldso/powerpc/elfinterp.c:1.27->1.28