On Tuesday 30 March 2010 02:09, Rob Landley wrote: > > 1.16.1 has been released today. > > I rebuilt the set of statically linked more or less defconfig busybox > binaries > for various targets and uploaded them Morris, see > http://busybox.net/downloads/binaries/1.16.1 > > By the way, if you need statically linked strace for the same set of targets > (sometimes useful, it's come up here on this list a couple times), you can > find > that (and dropbear) at http://impactlinux.com/fwl/downloads/binaries
Hi Rob, Wonderful job! This is so much further along than my crude cross-compiler. You have fifteen architectures covered. I had only two. I downloaded cross-compiler-i686 and cross-compiler-x86_64 and I can build static executables using either after I made symlinks /usr/x86_64-unknown-linux -> /whereever/I/untarred/cross-compiler-x86_64/x86_64-unknown-linux I have a few questions. When I run "strace -oLOG -f x86_64-gcc --static t.c" I see that it still tries to use your configured target path, /home/landley/temp/firmware/build/cross-compiler-x86_64. Can this be prevented? (I can send you LOG if you need it). And second, dynamic linking ("x86_64-gcc t.c") also works, but of course resulting binary needs some files to be in /lib, in simplest case /lib/ld-uClibc.so.0 and /lib/libc.so.0: # readelf -aW a.out ... Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align PHDR 0x000040 0x0000000000400040 0x0000000000400040 0x000150 0x000150 R E 0x8 INTERP 0x000190 0x0000000000400190 0x0000000000400190 0x000014 0x000014 R 0x1 [Requesting program interpreter: /lib/ld-uClibc.so.0] LOAD 0x000000 0x0000000000400000 0x0000000000400000 0x000439 0x000439 R E 0x100000 LOAD 0x00043c 0x000000000050043c 0x000000000050043c 0x000198 0x00019c RW 0x100000 DYNAMIC 0x000468 0x0000000000500468 0x0000000000500468 0x000130 0x000130 RW 0x8 GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x8 Section to Segment mapping: Segment Sections... 00 01 .interp 02 .interp .hash .dynsym .dynstr .rela.plt .init .plt .text .fini .rodata 03 .eh_frame .ctors .dtors .jcr .dynamic .got.plt .data .bss 04 .dynamic 05 Dynamic section at offset 0x468 contains 14 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libc.so.0] ... I can copy or symlink them to ones in cross-compiler-x86_64/lib and it will start working. But I can't make it for more than one cross-compiling toolchain at once, right? I can use either cross-compiler-i686 or cross-compiler-x86_64, but not both at once. But that would be useful. For example, in order to run randomconfig tests for both 32 and 64 bits in parallel overnight. I know that various distros use different names, like /lib and /lib64, to make it possible. How do they do it? And do you think it might make sense for you to use /lib-$CROSS instead of /lib for every (cross-)compiler, making it possible to run many dynamically linked programs against different sub-arches on the same machine? This will be an overkill for the case when one runs just a plain one-subarch, but it will still work for that case too, right? -- vda _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox