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
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox